home *** CD-ROM | disk | FTP | other *** search
- ' $linesize: 132
- ' $title: 'CONFIG V3.02, Copyright 1983-87 by D. Thomas Mack'
- ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
- 10000 ' CONFIG.BAS (RBBS-PC ver. CPC15.1B)
- ' by D.Thomas Mack
- ' The Second Ring
- ' 10210 Oxfordshire Road
- ' Great Falls, Virginia 22066
- '
- ' *******************************NOTICE**********************************
- ' * A limited license is granted to all users of this program and it's *
- ' * companion program, RBBS-PC (ver. CPC15.1), to make copies of this *
- ' * program and distribute the copies to other users, on the following *
- ' * conditions *
- ' * 1. The copyright notices contained within this program are not *
- ' * altered, bypassed, or removed. *
- ' * 2. The program is not to be disrtibuted to others in modified *
- ' * form (i.e. the line numbers must remain the same). *
- ' * 3. No fee is charged (or any other consideration received) *
- ' * for coping or distributing these programs without an express *
- ' * written agreement with D. Thomas Mack, The Second Ring, 10210*
- ' * Oxfordshire Road, Great falls, Virginia 22006 *
- ' * *
- ' * Copyright (c) 1983-1987 D. Thomas Mack, The Second Ring *
- ' ***********************************************************************
- ' $INCLUDE: 'CNFG-VAR.BAS'
- CLEAR
- '
- ' *****************************************************************************
- ' * DISPLAY THE CONFIG TITLE PAGE *
- ' *****************************************************************************
- '
- WIDTH 80
- CLS
- NOT.YET.IN$ = "[Not Implemented]" ' Msg used in config for parm not yet implemented
- NUM.FILES = 7
- NUM.GLOBAL = 4
- NUM.MAIN = 17
- NUM.SYSOP = 7
- NUM.UTILITY = 11
- I! = FRE(C$)
- KEY OFF
- PRINT TAB(60)"tm"
- PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
- PRINT
- PRINT TAB(17)"Capital PC User Group User-Supported Software"
- PRINT
- PRINT TAB(5) CHR$(214)STRING$(67,196)CHR$(183)
- FOR I = 1 TO 12
- READ A$
- PRINT TAB(5) CHR$(186);A$;SPACE$(67-LEN(A$));CHR$(186)
- NEXT
- PRINT TAB(5) CHR$(211)STRING$(67,196)CHR$(189)
- PRINT " Copyright (c) 1983-1987 Tom Mack, 10210 Oxfordshire Rd, Great Falls, VA"
- DATA " If you are using RBBS-PC CPC15.1 and find it valuable, I
- DATA " suggest you consider a contribution to
- DATA "
- DATA " Capital PC Software Exchange
- DATA " Post Office Box 6128
- DATA " Silver Spring, Maryland 20906
- DATA ""
- DATA " You are free to copy and share RBBS-PC CPC15.1 with
- DATA " others on these three conditions:
- DATA " 1. This program is not distributed in modified form.
- DATA " 2. No fee or consideration is charged.
- 10230 DATA " 3. This notice is not bypassed or removed.
- '
- ' *****************************************************************************
- ' * DEFINE THE FUNCTIONS USED BY CONFIG *
- ' *****************************************************************************
- '
- DEF FNTI! = CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60) _
- + (VAL(MID$(TIME$,4,2))*60) _
- + (VAL(MID$(TIME$,7,2))*1)))
- DEF FNHSH(X$) = ((ASC(X$)*100 _
- + ASC(MID$(X$,LEN(X$)/2,1))*10 _
- + ASC(RIGHT$(X$,1))) MOD MAX.USR.FILE.SIZE.FRM.DEF) + 1
- DEF FNHSH2(X$) = (ASC(MID$(X$,2,1))*10 + 7) MOD MAX.USR.FILE.SIZE.FRM.DEF
- DELAY! = FNTI! + 5
- 10480 IF FNTI! < DELAY! THEN _
- GOTO 10480
- 10490 LOCATE 22,15
- PRINT SPC(64)
- IF COMMAND$ <> "" THEN _
- CONFIG.FILENAME$ = COMMAND$: _
- GOTO 10530
- CONFIG.FILENAME$ = "RBBS-PC.DEF"
- LOCATE 22,10
- PRINT "Will you be running multiple copies of RBBS-PC (YES or NO)?";
- GOSUB 22380
- ON AB GOTO 10530,10510,10490,10490
- 10510 GOSUB 22480
- '
- '
- ' *****************************************************************************
- ' * CHECK TO SEE IF AN EXISTING "RBBS-PC.DEF" FILE EXISTS *
- ' *****************************************************************************
- '
- 10530 ON ERROR GOTO 60010
- FILE$ = CONFIG.FILENAME$
- GOSUB 30000
- M$ = "Z"
- IF OKAY THEN _
- CALL CNFGINIT : _
- GOSUB 15790 : _
- GOTO 10536
- GOSUB 31060
- PRINT CONFIG.FILENAME$ + " file not found. A new one will be created.";
- DELAY! = FNTI! + 5
- GOSUB 60440
- 10532 GOSUB 31060
- PRINT "Default drive on which RBBS is to reside (A-" + M$ + "): ";
- LINE INPUT;HJ$
- GOSUB 50654
- IF LEN(HJ$)<>1 OR HJ$<"A" OR HJ$>M$ THEN _
- GOTO 10532
- DD$ = HJ$
- CALL CNFGINIT
- GOSUB 15790
- BULLETIN.MENU$ = DRIVE.FOR.BULLETINS$ + ":" + BULLETIN.MENU$
- BULLETIN.PREFIX$ = DRIVE.FOR.BULLETINS$ + ":" + BULLETIN.PREFIX$
- GOTO 11710
- 10536 OPEN "I",#1,CONFIG.FILENAME$
- '
- ' *****************************************************************************
- ' * READ IN THE PARAMETERS FROM AN EXISTING "RBBS-PC.DEF" FILE *
- ' *****************************************************************************
- '
- 11600 INPUT #1,DOWNLOAD.DRIVES$, _ ' FD$
- SYSOP.PASSWORD.1$, _ ' PA$
- SYSOP.PASSWORD.2$, _ ' PB$
- SYSOP.FIRST.NAME$, _ ' NB$
- SYSOP.LAST.NAME$, _ ' NC$
- REQUIRED.RINGS, _ ' CE
- START.OFFICE.HOURS, _ ' AC
- END.OFFICE.HOURS, _ ' AD
- MINUTES.PER.SESSION!, _ ' TC!
- MAX.ALLOWED.MSGS.FRM.DEF, _ ' MP (DF)
- ACT.MNTHS.B4.DELETING, _ ' LA (DF)
- UPLOAD.DIRECTORY$, _ ' UF$
- EXPERT.USER, _ ' XPR
- ACTIVE.BULLETINS, _ ' BG
- PROMPT.BELL, _ ' BE
- PCJR, _ ' PCJR (DF)
- CODE.TYPE, _ ' CL (DF)
- MENU$(1), _ ' MG$
- MENU$(2), _ ' MH$
- MENU$(3), _ ' MI$
- MENU$(4), _ ' MJ$
- MENU$(5), _ ' MK$
- CONFERENCE.MENU$, _ ' CD$
- CONFERENCE.VIEWER.SEC.LVL, _ ' VA (DF)
- WELCOME.INTERRUPTABLE, _ ' OA
- REMIND.FILE.TRANSFERS, _ ' UD
- PAGE.LENGTH, _ ' PL
- MAX.MESSAGE.LINES, _ ' LW
- DOORS.AVAILABLE, _ ' WB
- MO$ ' MO$ (DF)
- GOSUB 22340
- 11620 INPUT #1,MAIN.MESSAGE.FILE$, _ ' ME$
- MAIN.MESSAGE.BACKUP$, _ ' MF$
- CALLERS.FILE$, _ ' CB$
- COMMENTS.FILE$, _ ' CC$
- MAIN.USER.FILE$, _ ' UC$
- WELCOME.FILE$, _ ' WA$
- NEWUSER.FILE$, _ ' NA$
- DIRECTORY.EXTENTION$, _ ' DIR$
- COM.PORT$, _ ' M13$
- BULLETINS.OPTIONAL, _ ' OD
- USER.INIT.COMMAND$, _
- RTS$, _ ' CPC15-1B
- DOS.VERSION, _ ' DA
- FG, _ ' FGR
- BG, _ ' BGR
- BORDER, _ ' BDR
- RBBS.BAT$, _ ' RB$
- RCTTY.BAT$ ' CI$
- GOSUB 22340
- 11640 INPUT #1,OMIT.MAIN.DIRECTORY$, _ ' OB$
- DUMMY$, _ ' OC$
- HELP$(3), _
- HELP$(4), _
- HELP$(7), _
- HELP$(9), _ ' HA$(9)
- BULLETIN.MENU$, _ ' BA$
- BULLETIN.PREFIX$, _ ' BB$
- DRIVE.FOR.BULLETINS$, _ ' BD$ (DF)
- MESSAGE.REMINDER, _ ' RC
- REQUIRE.NON.ASCII, _ ' BF
- DOORS.SECURITY.LEVEL, _ ' SD
- MAXIMUM.NUMBER.OF.NODES, _ ' MC
- NETWORK.TYPE, _ ' SE
- RECYCLE.TO.DOS, _ ' CF
- MAX.USR.FILE.SIZE.FRM.DEF, _ ' UB (DF)
- MAX.MSG.FILE.SIZE.FRM.DEF!, _ ' MQ! (DF)
- TRASHCAN.FILE$ ' BC$
- DONT.ASK = TRUE
- GOSUB 21895
- DONT.ASK = FALSE
- GOSUB 22340
- 11660 INPUT #1,MINIMUM.LOGON.SECURITY, _ ' ML
- DEFAULT.SECURITY.LEVEL, _ ' DB
- SYSOP.SECURITY.LEVEL, _ ' SB
- FILESEC.FILE$, _ ' FB$
- SYSOP.MENU.SECURITY.LEVEL, _ ' SC
- LOCAL.PASSWORD$, _ ' KA$
- MAXIMUM.VIOLATIONS, _ ' ND
- SYSOP.FUNCTION(1), _ ' SA(1)
- SYSOP.FUNCTION(2), _
- SYSOP.FUNCTION(3), _
- SYSOP.FUNCTION(4), _
- SYSOP.FUNCTION(5), _
- SYSOP.FUNCTION(6), _
- SYSOP.FUNCTION(7), _ ' SA(7)
- PASSWORD.FILE$, _ ' PD$
- MAXIMUM.PASSWORD.CHANGES, _ ' CG
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _ ' CH
- OVERWRITE.SECURITY.LEVEL, _ ' WC
- DOORS.TERMINAL.TYPE, _ ' MN
- LIMIT.DAILY.TIME ' M26
- GOSUB 22340
- 11680 INPUT #1,MAIN.FUNCTION(1), _ ' MD(1)
- MAIN.FUNCTION(2), _
- MAIN.FUNCTION(3), _
- MAIN.FUNCTION(4), _
- MAIN.FUNCTION(5), _
- MAIN.FUNCTION(6), _
- MAIN.FUNCTION(7), _
- MAIN.FUNCTION(8), _
- MAIN.FUNCTION(9), _
- MAIN.FUNCTION(10), _
- MAIN.FUNCTION(11), _
- MAIN.FUNCTION(12), _
- MAIN.FUNCTION(13), _
- MAIN.FUNCTION(14), _
- MAIN.FUNCTION(15), _
- MAIN.FUNCTION(16), _
- MAIN.FUNCTION(17), _
- DUMMY$, _
- WAIT.BEFORE.DISCONNECT ' TY
- GOSUB 22340
- 11700 INPUT #1,FILES.FUNCTION(1), _ ' FS(1)
- FILES.FUNCTION(2), _
- FILES.FUNCTION(3), _
- FILES.FUNCTION(4), _
- FILES.FUNCTION(5), _
- FILES.FUNCTION(6), _
- FILES.FUNCTION(7), _
- UTILITY.FUNCTION(1), _ ' UA(1)
- UTILITY.FUNCTION(2), _
- UTILITY.FUNCTION(3), _
- UTILITY.FUNCTION(4), _
- UTILITY.FUNCTION(5), _
- UTILITY.FUNCTION(6), _
- UTILITY.FUNCTION(7), _
- UTILITY.FUNCTION(8), _
- UTILITY.FUNCTION(9), _
- UTILITY.FUNCTION(10), _
- UTILITY.FUNCTION(11), _
- GLOBAL.FUNCTION(1), _
- GLOBAL.FUNCTION(2), _
- GLOBAL.FUNCTION(3), _
- GLOBAL.FUNCTION(4), _
- UPLOAD.TIME.FACTOR!, _ ' UPX!
- COMPUTER.TYPE, _ ' CM
- REMIND.PROFILE, _ ' CK
- RBBS.NAME$, _ ' FF$
- COMMANDS.BETWEEN.RINGS, _ ' M28
- MNP.SUPPORT, _ ' M29
- PAGING.PRINTER.SUPPORT$, _ ' MW$
- MODEM.INIT.BAUD$ ' B$
- 11705 INPUT #1,TURN.PRINTER.OFF, _
- DIRECTORY.PATH$, _
- MIN.SEC.TO.VIEW, _
- LIMIT.SEARCH.TO.FMS, _
- DEFAULT.CATEGORY.CODE$, _
- DIR.CATEGORY.FILE$, _
- NEW.FILES.CHECK, _
- MAX.DESC.LEN, _
- SHOW.SECTION, _
- COMMANDS.IN.PROMPT, _
- NEWUSER.SETS.DEFAULTS, _
- HELP.PATH$, _
- HELP.EXTENSION$, _
- MAIN.COMMANDS$, _
- FILE.COMMANDS$, _
- UTIL.COMMANDS$, _
- GLOBAL.COMMANDS$, _
- SYSOP.COMMANDS$
- INPUT #1,UPLOAD.PATH$, _
- FMS.DIRECTORY$, _
- ANS.MENU$,_
- REQUIRED.QUESTIONNAIRE$,_
- REMEMBER.NEW.USERS, _
- SURVIVE.NOUSER.ROOM, _
- PROMPT.HASH$, _
- START.HASH, _
- LEN.HASH, _
- PROMPT.INDIV$, _
- START.INDIV, _
- LEN.INDIV
- INPUT #1,BYPASS.MSGS, _
- MUSIC, _
- RESTRICT.BY.DATE, _
- DAYS.TO.WARN, _
- DAYS.IN.SUBSCRIPTION.PERIOD, _
- CALLBACK.VERIFICATION, _
- RESTRICT.VALID.CMDS, _
- NEW.USER.DEFAULT.MODE, _
- NEW.USER.LINE.FEEDS, _
- NEW.USER.NULLS, _
- NEW.USER.BELL, _
- NEW.USER.CASE, _
- NEW.USER.MARGINS, _
- WRAP.CALLERS.FILE$, _
- REDIRECT.IO.METHOD, _
- GO.TO.SHELL, _
- HALT.ON.ERROR, _
- NEW.PUBLIC.MSGS.SECURITY, _
- NEW.PRIVATE.MSGS.SECURITY, _
- SECURITY.NEEEDED.TO.CHANGE.MSGS, _
- SL.CATEGORIZE.UPLOADS, _
- BAUDOT, _
- TIME.TO.DROP.TO.DOS, _
- EXPIRED.SECURITY, _
- DTR.DROP.DELAY, _
- ASK.IDENTITY, _
- USE.EXTERNAL.XMODEM, _
- BUFFER.SIZE, _
- MLCOM, _
- SHOOT.YOURSELF, _
- F7.MESSAGE$, _
- NEW.USER.DEFAULT.PROTOCOL$, _
- NEW.USER.GRAPHICS$, _
- NET.MAIL$, _
- MASTER.DIRECTORY.NAME$, _
- PROTOCOL.PATH$, _
- UPCAT.HELP$, _
- ALWAYS.STREW.TO$, _
- DUMMY$
- INPUT #1,SEC.LVL.EXEMPT.FRM.PURGING, _ ' PC
- MODEM.INIT.WAIT.TIME, _
- MODEM.COMMAND.DELAY.TIME, _
- TURBO.RBBS
- 11706 INPUT #1,DNLD.SUB, _ ' DNLD.SUB
- WILL.SUBDIRS.B.USED, _ ' M30 (DF)
- UPLOAD.TO.SUBDIR, _ ' M31
- DOWNLOAD.TO.SUBDIR, _ ' M32 (DF)
- UPLOAD.SUBDIR$, _ ' M33$
- RESTRICT.BAUD, _ ' M34
- USE.COLOR, _ ' M35
- DISKFULL.GO.OFFLINE, _ ' M36
- EXTENDED.LOGGING, _ ' M37
- USER.RESET.COMMAND$, _
- USER.COUNT.RINGS.COMMAND$, _
- USER.ANSWER.COMMAND$, _
- USER.GO.OFFHOOK.COMMAND$, _
- DISK.FOR.DOS$, _ ' M38$
- DUMB.MODEM, _ ' M39
- COMMENTS.AS.MESSAGES, _ ' M40
- LSB, _ ' LSB
- MSB, _ ' MSB
- LINE.CONTROL.REGISTER, _ ' LCR
- MODEM.CONTROL.REGISTER, _ ' MCR
- LINE.STATUS.REGISTER, _ ' LSR
- MODEM.STATUS.REGISTER ' MSR
- IF DNLD.SUB < 1 OR DNLD.SUB > 99 THEN _
- GOTO 11710
- FOR I = 1 TO DNLD.SUB
- INPUT #1,DNLD$(I)
- NEXT
- 11710 GOSUB 22340
- '
- ' *****************************************************************************
- ' * CONVERT "RBBS-PC.DEF" PARAMETERS TO DISPLAYABLE VALUES, AS REQUIRED *
- ' *****************************************************************************
- '
- BULLETIN.MENU$ = RIGHT$(BULLETIN.MENU$,(LEN(BULLETIN.MENU$)-2))
- BULLETIN.PREFIX$ = RIGHT$(BULLETIN.PREFIX$,(LEN(BULLETIN.PREFIX$)-2))
- IF RECYCLE.TO.DOS = 0 THEN _
- RECYCLE.TO.DOS$ = "INTERNAL" ELSE _
- RECYCLE.TO.DOS$ = "SYSTEM
- HELP.FILE.PREFIX$ = LEFT$(HELP$(3),LEN(HELP$(3))-1)
- SF = SYSOP.FUNCTION(1)
- GOSUB 16062
- FOR I = 2 TO NUM.SYSOP
- IF SYSOP.FUNCTION(I) > SF THEN _
- GOTO 11790
- SF = SYSOP.FUNCTION(I)
- 11790 NEXT
- MM = MAIN.FUNCTION(1)
- FOR I = 1 TO NUM.MAIN
- MAIN.FUNCTION$(I,2) = MID$(MAIN.COMMANDS$,I,1)
- IF MAIN.FUNCTION(I) > MM THEN _
- GOTO 11810
- MM = MAIN.FUNCTION(I)
- 11810 NEXT
- FC = FILES.FUNCTION(1)
- FOR I = 1 TO NUM.FILES
- FILES.FUNCTION$(I,2) = MID$(FILE.COMMANDS$,I,1)
- IF FILES.FUNCTION(I) > FC THEN _
- GOTO 11830
- FC = FILES.FUNCTION(I)
- 11830 NEXT
- UE = UTILITY.FUNCTION(1)
- FOR I = 1 TO NUM.UTILITY
- UTILITY.FUNCTION$(I,2) = MID$(UTIL.COMMANDS$,I,1)
- IF UTILITY.FUNCTION(I) > UE THEN _
- GOTO 11850
- UE = UTILITY.FUNCTION(I)
- 11850 NEXT
- FOR I = 1 TO NUM.GLOBAL
- GLOBAL.FUNCTION$(I,2) = MID$(GLOBAL.COMMANDS$,I,1)
- NEXT
- CLOSE #1
- GOSUB 22340
- GOSUB 50480
- GOSUB 22340
- GOSUB 50530
- GOSUB 22340
- 11870 IF EXPERT.USER = 0 THEN _
- EXPERT.USER$ = "NOVICE
- IF EXPERT.USER = -1 THEN _
- EXPERT.USER$ = "EXPERT
- DRIVE.FOR.UPLOADS$ = RIGHT$(DOWNLOAD.DRIVES$,1)
- DRIVES.FOR.DOWNLOADS$ = LEFT$(DOWNLOAD.DRIVES$,(LEN(DOWNLOAD.DRIVES$)-1))
- PROMPT.BELL$ = "ON"
- IF PROMPT.BELL = 0 THEN _
- PROMPT.BELL$ = "OFF
- CODE.TYPE$ = "BASICA"
- IF CODE.TYPE = TRUE THEN _
- CODE.TYPE$ = "COMPILED
- BULLETINS.OPTIONAL$ = FNYESNO$(BULLETINS.OPTIONAL)
- GOSUB 15780
- MESSAGE.REMINDER$ = FNYESNO$(MESSAGE.REMINDER)
- REQUIRE.NON.ASCII$ = FNYESNO$(REQUIRE.NON.ASCII)
- WELCOME.INTERRUPTABLE$ = FNYESNO$(WELCOME.INTERRUPTABLE)
- REMIND.FILE.TRANSFERS$ = FNYESNO$(REMIND.FILE.TRANSFERS)
- REMIND.PROFILE$ = FNYESNO$(REMIND.PROFILE)
- DOORS.AVAILABLE$ = FNYESNO$(DOORS.AVAILABLE)
- IF SYSOP.PASSWORD.1$ = "" THEN _
- MN1$ = "(Disabled)" ELSE _
- MN1$ = SYSOP.PASSWORD.1$
- IF SYSOP.PASSWORD.2$ = "" THEN _
- MN2$ = "(Disabled)" ELSE _
- MN2$ = SYSOP.PASSWORD.2$
- M11$ = "NO"
- IF PAGING.PRINTER.SUPPORT$ = ". " + CHR$(7) THEN _
- M11$ = "YES
- LIMIT.DAILY.TIME$ = FNYESNO$(LIMIT.DAILY.TIME)
- COMMANDS.BETWEEN.RINGS$ = FNYESNO$(COMMANDS.BETWEEN.RINGS)
- MNP.SUPPORT$ = FNYESNO$(MNP.SUPPORT)
- WILL.SUBDIRS.B.USED$ = FNYESNO$(WILL.SUBDIRS.B.USED)
- UPLOAD.TO.SUBDIR$ = FNYESNO$(UPLOAD.TO.SUBDIR)
- DOWNLOAD.TO.SUBDIR$ = FNYESNO$(DOWNLOAD.TO.SUBDIR)
- RESTRICT.BAUD$ = FNYESNO$(RESTRICT.BAUD)
- IF RESTRICT.BAUD=-2 THEN _
- RESTRICT.BAUD$="YES=Registered users"
- USE.COLOR$ = FNYESNO$(USE.COLOR)
- DISKFULL.GO.OFFLINE$ = FNYESNO$(DISKFULL.GO.OFFLINE)
- EXTENDED.LOGGING$ = FNYESNO$(EXTENDED.LOGGING)
- DUMB.MODEM$ = FNYESNO$(DUMB.MODEM)
- COMMENTS.AS.MESSAGES$ = FNYESNO$(COMMENTS.AS.MESSAGES)
- TURBO.RBBS$ = FNYESNO$(TURBO.RBBS)
- LIMIT.SEARCH.TO.FMS$ = FNYESNO$(LIMIT.SEARCH.TO.FMS)
- NEW.FILES.CHECK$ = FNYESNO$(NEW.FILES.CHECK)
- SHOW.SECTION$ = FNYESNO$(SHOW.SECTION)
- COMMANDS.IN.PROMPT$ = FNYESNO$(COMMANDS.IN.PROMPT)
- NEWUSER.SETS.DEFAULTS$ = FNYESNO$(NEWUSER.SETS.DEFAULTS)
- REMEMBER.NEW.USERS$ = FNYESNO$(REMEMBER.NEW.USERS)
- SURVIVE.NOUSER.ROOM$ = FNYESNO$(SURVIVE.NOUSER.ROOM)
- TURN.PRINTER.OFF$ = FNYESNO$(TURN.PRINTER.OFF)
- MUSIC$ = FNYESNO$(MUSIC)
- RESTRICT.BY.DATE$ = FNYESNO$(RESTRICT.BY.DATE)
- IF START.HASH < 1 THEN START.HASH = 1
- IF LEN.HASH < 2 THEN LEN.HASH = 31
- REDIRECT.IO.METHOD$ = FNYESNO$(REDIRECT.IO.METHOD)
- GO.TO.SHELL$ = "SHELL"
- IF NOT GO.TO.SHELL THEN _
- GO.TO.SHELL$ = "EXIT RBBS-PC"
- IF REQUIRED.QUESTIONNAIRE$ = "" THEN _
- REQUIRED.QUESTIONNAIRE$ = "NONE"
- MLCOM$ = FNYESNO$(MLCOM)
- SHOOT.YOURSELF$ = FNYESNO$(SHOOT.YOURSELF)
- GOSUB 18002
- GOSUB 18102
- I = 1
- GOSUB 13030
- '
- ' *****************************************************************************
- ' * IF A MESSAGE FILE EXISTS, READ IN THE PARAMETERS IN IT. *
- ' *****************************************************************************
- '
- Y$ = "
- 12151 F = 0
- MAINMSG$ = MAIN.MESSAGE.FILE$
- MAINUSR$ = MAIN.USER.FILE$
- 12160 KEY OFF
- GOSUB 22340
- CALLS.TODATE! = 0 ' set initial message number to 0
- FIRST.USER.RECORD = 1 ' USERS file -- first record number
- CURRENT.USER.COUNT = FIRST.USER.RECORD ' USERS file -- next available record number
- HIGHEST.USER.RECORD = MAX.USR.FILE.SIZE.FRM.DEF ' USERS file -- last record number
- FIRST.MESSAGE.RECORD = 2+ MAXIMUM.NUMBER.OF.NODES ' MESSAGES file -- first record of messages
- NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD ' MESSAGES file -- next available record number
- HIGHEST.MESSAGE.RECORD = 5*MAX.ALLOWED.MSGS.FRM.DEF _
- + 1 + MAXIMUM.NUMBER.OF.NODES ' MESSAGES file -- last record number
- MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF ' MESSAGES file -- maximum number of messages
- FILE$ = MAIN.MESSAGE.FILE$
- MESSAGE.FILE.FOUND = 0
- USER.FILE.FOUND = 0
- GOSUB 30000
- '
- ' If MESSAGES exist, get checkpoint record
- '
- IF OKAY THEN _
- MESSAGE.FILE.FOUND = OKAY : _
- GOSUB 30040 : _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD : _
- MAX.MSG.FILE.SIZE.FRM.DEF! = HIGHEST.MESSAGE.RECORD : _
- MAX.ALLOWED.MSGS.FRM.DEF = INT((HIGHEST.MESSAGE.RECORD-FIRST.MESSAGE.RECORD)/5) + 1
- IF MAX.ALLOWED.MSGS.FRM.DEF > 999 THEN _
- MAX.ALLOWED.MSGS.FRM.DEF = 999
- IF MAXIMUM.NUMBER.OF.MSGS < 1 THEN _
- MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF : _
- GOSUB 30450 ' Assure number of msgs.>0
- FILE$ = MAIN.USER.FILE$ ' Check for USERS file
- GOSUB 30000
- '
- ' If USERS file exist, set values
- '
- IF OKAY THEN _
- USER.FILE.FOUND = OKAY : _
- FILE$ = MAIN.USER.FILE$ : _
- GOSUB 30180 : _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- IF MESSAGE.FILE.FOUND <> -1 AND F <> 2 THEN _
- CURRENT.USER.COUNT = UG + 1 ' if no MESSAGES file, assume USERS full
- IF MESSAGE.FILE.FOUND = -1 THEN _
- GOSUB 30450 ' if MESSAGES file, re-write checkpoint
- IF MESSAGE.FILE.FOUND <> -1 THEN _
- GOSUB 30230 ' write new MESSAGES file if none
- IF USER.FILE.FOUND <> -1 AND MESSAGE.FILE.FOUND = -1 THEN _
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD : _
- GOSUB 50000 ' write new USERS file if none
- IF USER.FILE.FOUND <> -1 AND MESSAGE.FILE.FOUND <> -1 THEN _
- GOSUB 50000 ' write new USERS file if none
- FOR I = 1 TO 10
- KEY I,""
- NEXT
- B1 = MAX.USR.FILE.SIZE.FRM.DEF
- GOSUB 22140
- '
- ' *****************************************************************************
- ' * DISPLY CONFIG'S MAIN FUNCTION KEY MENU *
- ' *****************************************************************************
- '
- 12190 IX = 0
- 12320 CALL DISPLAY
- IF IX = 21 THEN _
- GOTO 22350
- ON IPAGE GOTO 12622, _ ' 1 F1 - Global Parameters (Part 1)
- 12624, _ ' 2 F2 - Global Parameters (Part 2)
- 12626, _ ' 3 F3 - Global Parameters (Part 3)
- 12628, _ ' 3 F4 - Static RBBS-PC Files
- 12630, _ ' 4 F5 - Dynamic RBBS-PC Files
- 12632, _ ' 5 F6 - RBBS-PC "doors"
- 12634, _ ' 6 F7 - RBBS-PC security parameters
- 12636, _ ' 7 F8 - Multiple RBBS-PC parameters
- 12638, _ ' 8 F9 - RBBS-PC's utilities
- 12640, _ ' 9 F10 - RBBS-PC File Manager
- 12642, _ '10 Shift-F1 - RBBS-PC communications parameters
- 12643, _ '11 Shift-F2 - RBBS-PC Net Mail
- 12644 '12 Shift-F3 - New user's parameters
- '
- ' *****************************************************************************
- ' * HANDLE UNSUPPORTED REQUEST *
- ' *****************************************************************************
- '
- 12325 IX = IPAGE
- GOTO 12320
- 12330 IX = -1
- GOTO 12320
- 12622 ON ILOOKUP GOSUB 12840, _ ' 1 SYSOP's first name
- 12910, _ ' 2 SYSOP's last name
- 12980, _ ' 3 SYSOP's remote pseudonym 1
- 13060, _ ' 4 SYSOP's remote pseudonym 2
- 12670, _ ' 5 SYSOP's password for local signon
- 13140, _ ' 6 SYSOP's default signon mode
- 13210, _ ' 7 SYSOP's office hours
- 13224, _ ' 8 Page SYSOP with printer's bell
- 13238, _ ' 9 300 BAUD callers (yes or no)
- 13245, _ ' 10 Using ANSI.SYS
- 13249, _ ' 11 Go off-line when disk is full
- 13750, _ ' 12 Prompt bell
- 13840, _ ' 13 Maximum time per session
- 16650, _ ' 14 Limit users to a max time per day
- 13940, _ ' 15 Months of inactivity before deleted
- 13131, _ ' 16 Name of this RBBS-PC
- 15530, _ ' 17 Foreground color
- 15590, _ ' 18 Background color
- 15650, _ ' 19 Border color
- 13000 ' 20 Who can bypass message subsystem
- GOTO 12325
- 12624 ON ILOOKUP GOSUB 15800, _ ' 21 Remind users of messages they left
- 16690, _ ' 22 Remind users of uploads and downloads
- 16722, _ ' 23 Remind users of their profile
- 16730, _ ' 24 Specify default page length
- 16790, _ ' 25 Set maximum number of lines/message
- 15880, _ ' 26 Require non-ASCII protocol?
- 15234, _ ' 27 Factor to extend time for uploads
- 17700, _ ' 28 Required questionnaire name
- 16000, _ ' 29 Is system "welcome" interruptable?
- 15840, _ ' 30 Are the system bulletins optional?
- 16040, _ ' 31 Type of PC running RBBS-PC
- 17230, _ ' 32 Symbols for SYSOP's commands
- 17240, _ ' 33 Symbols for main menu's commands
- 17250, _ ' 34 Symbols for file menu's commands
- 17260, _ ' 35 Symbols for utilities menu's commands
- 17264, _ ' 36 Symbols for "global" commands
- 17500, _ ' 37 Show section at command prompt?
- 17550, _ ' 38 Show commands at command prompt?
- 15820, _ ' 39 Use machine language subroutines?
- 15830 ' 40 Restrict valid cmnds to current section
- GOTO 12325
- 12626 ON ILOOKUP GOSUB 18000, _ ' 41 Field used to locate a users record
- 18100, _ ' 42 Field used distinguish users with same id
- 17630, _ ' 43 Restrict users by date
- 18510, _ ' 44 Days before expiration to warn
- 18530, _ ' 45 Security level when subscription expires
- 18520, _ ' 46 Days a newuser gets when registers
- 17610, _ ' 47 Turn printer off on recycle
- 17620, _ ' 48 Play music for RBBS themes?
- 21760, _ ' 49 Buffer size for text files
- 22550, _ ' 50 Notify users when SYSOP wants system?
- 22550, _ ' 51 Call back verification of all/new users
- 12325, _ ' 52
- 12325, _ ' 53
- 12325, _ ' 54
- 12325, _ ' 55
- 12325, _ ' 56
- 12325, _ ' 57
- 12325, _ ' 58
- 12325, _ ' 59
- 12325 ' 60
- GOTO 12325
- 12628 ON ILOOKUP GOSUB 14790, _ ' 61 Drive and file describing bulletins
- 15290, _ ' 62 Number of active bulletins
- 14800, _ ' 63 Prefix used to name bulletin files
- 14810, _ ' 64 Drive and path for 'help' files
- 14820, _ ' 65 Prefix of nine major help files
- 14825, _ ' 66 Extension for individual help files
- 14915, _ ' 67 Help file for categorizing uploads
- 14830, _ ' 68 Name of 'newuser' file
- 14840, _ ' 69 Name of 'welcome" file
- 14860, _ ' 70 Name of SYSOP's commands menu
- 14870, _ ' 71 Name of main message command menu
- 14880, _ ' 72 Name of file subsystem command menu
- 14890, _ ' 73 Name of utilities command menu
- 14900, _ ' 74 Menu listing available conferences
- 14905, _ ' 75 Menu of questionnaires
- 14910, _ ' 76 File of unacceptable user names
- 12325, _ ' 77
- 12325, _ ' 78
- 12325, _ ' 79
- 12325 ' 80
- GOTO 12325
- 12630 ON ILOOKUP GOSUB 15460, _ ' 81 Name of 'message' file
- 15500, _ ' 82 Name of 'user' file
- 15462, _ ' 83 Name of 'comments' file
- 15993, _ ' 84 Record comments as private messages?
- 15461, _ ' 85 Name of 'callers' file
- 15991, _ ' 86 Extened logging to 'callers' file?
- 22550, _ ' 87 Wrap-around the 'callers' file?
- 12325, _ ' 88
- 12325, _ ' 89
- 12325, _ ' 90
- 12325, _ ' 91
- 12325, _ ' 92
- 12325, _ ' 93
- 12325, _ ' 94
- 12325, _ ' 95
- 12325, _ ' 96
- 12325, _ ' 97
- 12325, _ ' 98
- 12325, _ ' 99
- 12325 ' 100
- GOTO 12325
- 12632 ON ILOOKUP GOSUB 16290, _ ' 101 Are 'doors' available?
- 16130, _ ' 102 Name of menu listing available doors
- 16140, _ ' 103 Name of file built dynamical for doors
- 16150, _ ' 104 Name of .BAT the will re-invoke RBBS
- 16160, _ ' 105 Drive to look for COMMAND.COM on
- 16170, _ ' 106 Enable CTTY command for doors
- 16180, _ ' 107 Invoke "drivers" via shell or DOS exit
- 12325, _ ' 108
- 12325, _ ' 109
- 12325, _ ' 110
- 12325, _ ' 111
- 12325, _ ' 112
- 12325, _ ' 113
- 12325, _ ' 114
- 12325, _ ' 115
- 12325, _ ' 116
- 12325, _ ' 117
- 12325, _ ' 118
- 12325, _ ' 119
- 12325 ' 120
- GOTO 12325
- 12634 ON ILOOKUP GOSUB 17160, _ ' 121 Minimum security level to logon
- 17170, _ ' 122 Default security level for new users
- 17180, _ ' 123 SYSOP's security level
- 17190, _ ' 124 File listing download-secured files
- 17200, _ ' 125 Minimum security to see SYSOP's menu
- 17210, _ ' 126 Minimum security level to use 'doors'
- 17220, _ ' 127 Max # security violations allowed
- 17230, _ ' 128 Security levels for SYSOP commands
- 17240, _ ' 129 Security levels for main commands
- 17250, _ ' 130 Security levels for file commands
- 17260, _ ' 131 Security levels for utilities commands
- 17264, _ ' 132 Security level for 'global' commands'
- 17270, _ ' 133 File name with privileged passwords
- 17290, _ ' 134 Max # password changes allowed
- 17300, _ ' 135 Min. security for temp. passwords
- 17310, _ ' 136 Min. security to overwrite on uploads
- 17316, _ ' 137 User's security exempted from packing
- 22550, _ ' 138 Security assigned new public messages
- 22550, _ ' 139 Security assigned new private messages
- 22550 ' 140 Security to revise message's security
- GOTO 12325
- 12636 ON ILOOKUP GOSUB 21750, _ ' 141 Maximum number of concurrent RBBS-PC's
- 21810, _ ' 142 Environment running RBBS-PC
- 21950, _ ' 143 Method that RBBS-PC re-cycles with
- 21910, _ ' 144 Number of records in 'user' file
- 22040, _ ' 145 Number of records in 'message' file
- 13890, _ ' 146 Maximum number of messages allowed
- 25040, _ ' 147 Conference file maintenance
- 12325, _ ' 148
- 12325, _ ' 149
- 12325, _ ' 150
- 12325, _ ' 151
- 12325, _ ' 152
- 12325, _ ' 153
- 12325, _ ' 154
- 12325, _ ' 155
- 12325, _ ' 156
- 12325, _ ' 157
- 12325, _ ' 158
- 12325, _ ' 159
- 12325 ' 160
- IF REFRESH = 1 THEN _
- REFRESH = 0 : _
- GOTO 12151
- IF REFRESH = 2 THEN _
- REFRESH = 0 : _
- GOTO 12160
- GOTO 12325
- 12638 ON ILOOKUP GOSUB 23160, _ ' 161 Pack the 'messages' file
- 22570, _ ' 162 Rebuild the 'user' file
- 23630, _ ' 163 Print the message headers
- 23740, _ ' 164 Renumber messages
- 23620, _ ' 165 Repair the 'message' file
- 24050, _ ' 166 Require users to answer questionnaire
- 24790, _ ' 167 Check FMS directory
- 12325, _ ' 168
- 12325, _ ' 169
- 12325, _ ' 170
- 12325, _ ' 171
- 12325, _ ' 172
- 12325, _ ' 173
- 12325, _ ' 174
- 12325, _ ' 175
- 12325, _ ' 176
- 12325, _ ' 177
- 12325, _ ' 178
- 12325, _ ' 179
- 12325 ' 180
- GOTO 12325
- 12640 ON ILOOKUP GOSUB 14920, _ ' 181 Drive available for uploading
- 12730, _ ' 182 Name of directory for uploading
- 18550, _ ' 183 Drive/path for upload dir
- 13470, _ ' 184 Drive(s) available for downloading
- 25380, _ ' 185 Are DOS subdirectories used?
- 25420, _ ' 186 Upload to a DOS subdirectory?
- 25460, _ ' 187 Are downloads from DOS subdirectories?
- 25495, _ ' 188 List, change, add, delete subdir.?
- 14850, _ ' 189 Upload directory's file name extension
- 15920, _ ' 190 Omit directory list from N>ew command?
- 18350, _ ' 191 CC all upload descriptions to
- 12740, _ ' 192 FMS directory name
- 18515, _ ' 193 Security level to categorize uploads
- 17590, _ ' 194 Limit file searches to upload dir
- 18200, _ ' 195 Default category codes for uploads
- 18300, _ ' 196 File name with valid category codes
- 17600, _ ' 197 Enable download of new files at logon
- 18400, _ ' 198 Length of description of uploads
- 18500, _ ' 199 Min security level to view new uploads
- 18600 ' 200 Drive/path directory files
- GOTO 12325
- 12642 ON ILOOKUP GOSUB 14120, _ ' 201 Communications Port being used
- 15240, _ ' 202 Seconds for modem to initalize
- 15250, _ ' 203 Seconds to wait before issuing cmds.
- 13228, _ ' 204 Number of rings to answer on
- 15710, _ ' 205 Use standard RBBS-PC modem commands
- 15911, _ ' 206 Microcom's MNP available?
- 16121, _ ' 207 Issue modem commands between rings?
- 16124, _ ' 208 Baud rate to initially open modem at
- 16031, _ ' 209 Seconds to wait before disconnecting
- 16725, _ ' 210 Is a dumb modem being used?
- 23731, _ ' 211 Initialize Hayes 2400 firmware
- 18540, _ ' 212 DTR drop delay time
- 18620, _ ' 213 Where external protocol pgms are
- 17640, _ ' 214 Use xmodem in external protocol pgms
- 17650, _ ' 215 Always check for autodownload support
- 18360, _ ' 216 Restrict dir search for 'ALL' to
- 12325, _ ' 217 Modem TDD for BAUDOT code?
- 13260, _ ' 218 Use RTS for modem flow control? ' CPC15-1B
- 12325, _ ' 219
- 12325 ' 220
- GOTO 12325
- 12643 ON ILOOKUP GOSUB 26040, _ ' 221 Time of day to drop to DOS
- 26070, _ ' 222 NET-MAIL driver to invoke ' CPC15-1B
- 12325, _ ' 223
- 12325, _ ' 224
- 12325, _ ' 225
- 12325, _ ' 226
- 12325, _ ' 227
- 12325, _ ' 228
- 12325, _ ' 229
- 12325, _ ' 230
- 12325, _ ' 231
- 12325, _ ' 232
- 12325, _ ' 233
- 12325, _ ' 234
- 12325, _ ' 235
- 12325, _ ' 236
- 12325, _ ' 237
- 12325, _ ' 238
- 12325, _ ' 239
- 12325 ' 240
- GOTO 12325
- 12644 ON ILOOKUP GOSUB 17560, _ ' 241 Prompt new users for their preferences
- 22550, _ ' 242 New users default sign-on mode
- 22550, _ ' 243 New users default file-transfer mode
- 22550, _ ' 244 Line feeds for new users default to
- 22550, _ ' 245 Nulls for new users default to
- 22550, _ ' 246 Prompt bell for new users defaults to
- 22550, _ ' 247 New users 'graphics' ability is
- 22550, _ ' 248 New users upper/lower case
- 22550, _ ' 249 New users margins defaults are
- 17570, _ ' 250 Remember new users
- 17580, _ ' 251 Survive no user room
- 12325, _ ' 252
- 12325, _ ' 253
- 12325, _ ' 254
- 12325, _ ' 255
- 12325, _ ' 256
- 12325, _ ' 257
- 12325, _ ' 258
- 12325, _ ' 259
- 12325 ' 260
- GOTO 12325
- '
- ' *****************************************************************************
- ' * PROCESS THE PASSWORD SELECTED FOR THE LOCAL SYSOP TO TAKE OVER RBBS-PC *
- ' *****************************************************************************
- '
- 12670 GOSUB 31060
- XX$ = "Enter password (8 characters or less)"
- GOSUB 50345
- GOSUB 14990
- IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN _
- HJ$ = "5" : _
- GOTO 12670
- LOCAL.PASSWORD$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * PROCESS NAME OF UPLOAD DIRECTORY *
- ' *****************************************************************************
- '
- 12730 A$ = "upload"
- GOSUB 13590
- UPLOAD.DIRECTORY$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * Get the File Management System Directory *
- ' *****************************************************************************
- '
- 12740 A$ = "File Management System (or NONE)"
- GOSUB 13590
- FMS.DIRECTORY$ = HJ$
- IF FMS.DIRECTORY$ = "NONE" THEN _
- FMS.DIRECTORY$ = ""
- RETURN
- '
- ' *****************************************************************************
- ' * GET THE SYSOP'S FIRST NAME *
- ' *****************************************************************************
- '
- 12840 XX$ = "What is the SYSOP's FIRST name? "
- GOSUB 50345
- LINE INPUT;HJ$
- IF HJ$ = "" THEN _
- GOTO 12840
- IF LEN(HJ$) < 3 THEN _
- GOTO 12840
- GOSUB 50654
- SYSOP.FIRST.NAME$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * PROCESS THE SYSOP'S LAST NAME *
- ' *****************************************************************************
- '
- 12910 XX$ = "What is the SYSOP's LAST name? "
- GOSUB 50345
- LINE INPUT;HJ$
- IF HJ$ = "" THEN _
- GOTO 12910
- IF LEN(HJ$) < 3 THEN _
- GOTO 12910
- GOSUB 50654
- SYSOP.LAST.NAME$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * PROCESS THE "PSEUDONYM" (FIRST NAME) USED BY THE SYSOP TO LOGON REMOTELY *
- ' *****************************************************************************
- '
- 12980 XX$ = "What is the SYSOP's Password #1? "
- GOSUB 50345
- LINE INPUT;HJ$
- GOSUB 50654
- SYSOP.PASSWORD.1$ = HJ$
- IF SYSOP.PASSWORD.1$ = "" THEN _
- MN1$ = "(Disabled)" ELSE _
- MN1$ = SYSOP.PASSWORD.1$
- RETURN
- '
- ' *****************************************************************************
- ' * IDENTIFY THE TYPE OF USERS THAT CAN BYPASS THE MESSAGE SUBSYSTEM *
- ' *****************************************************************************
- '
- 13000 CLS
- I = 0
- LOCATE 5,5
- PRINT "Please identify the type of user that can bypass the message subsystem:"
- LOCATE 7,10
- PRINT "0. Any user"
- LOCATE 9,10
- PRINT "1. Any user except new (or first-time) users"
- LOCATE 11,10
- PRINT "2. Only EXPERT users"
- LOCATE 13,10
- PRINT "3. Users with a specific security level."
- 13010 GOSUB 50340
- XX$ = "Select environment (0 to 3, CR to end) "
- GOSUB 50345
- LINE INPUT;X$
- IF X$ = "" THEN _
- RETURN
- BYPASS = VAL(X$)
- 13020 IF BYPASS < 0 OR BYPASS > 3 THEN _
- GOTO 13010
- BYPASS$ = NOT.YET.IN$
- RETURN
- 13030 IF BYPASS = 0 THEN _
- BYPASS$ = "Any user" : _
- RETURN
- IF BYPASS = 1 THEN _
- BYPASS$ = "All but new users" : _
- RETURN
- IF BYPASS = 2 THEN _
- BYPASS$ = "Only EXPERT users" : _
- RETURN
- IF I = 0 THEN _
- XX$ = "Specify the security level required to bypass messages. " : _
- GOSUB 50345 : _
- LINE INPUT;X$
- BYPASS$ = "Security >"+STR$(VAL(X$))+" users"
- RETURN
- '
- ' *****************************************************************************
- ' * PROCESS THE "PSEUDONYM" (LAST NAME) USED BY THE SYSOP TO LOGON REMOTELY *
- ' *****************************************************************************
- '
- 13060 XX$ = "What is the SYSOP's Password #2? "
- GOSUB 50345
- LINE INPUT;HJ$
- GOSUB 50654
- SYSOP.PASSWORD.2$ = HJ$
- IF SYSOP.PASSWORD.2$ = "" THEN _
- MN2$ = "(Disabled)" ELSE _
- MN2$ = SYSOP.PASSWORD.2$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO GIVE THIS RBBS-PC A PERSONAL NAME *
- ' *****************************************************************************
- '
- 13131 XX$ = "Enter name for this RBBS-PC (19 characters or less) "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) > 19 THEN _
- GOTO 13131
- GOSUB 50654
- RBBS.NAME$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT "EXPERT" OR "NOVICE" AS HIS DEFAULT MODE *
- ' *****************************************************************************
- '
- 13140 XX$ = "SYSOP's default sign-on mode (EXPERT/NOVICE)? "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) = 6 OR LEN(HJ$) = 1 THEN _
- GOTO 13170
- GOTO 13140
- 13170 GOSUB 50654
- IF HJ$ = "E" OR HJ$ = "EXPERT" THEN _
- EXPERT.USER$ = "EXPERT" : _
- RETURN
- IF HJ$ = "N" OR HJ$ = "NOVICE" THEN _
- EXPERT.USER$ = "NOVICE" : _
- RETURN
- GOTO 13140
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT HIS "OFFICE HOURS" *
- ' *****************************************************************************
- '
- 13210 XX$ = "What is the earliest SYSOP wants to be paged? -- HHMM "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 4 THEN _
- GOTO 13210
- IF FIX(VAL(MID$(HJ$,1,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,1,2))) > 24 OR _
- FIX(VAL(MID$(HJ$,3,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,3,2))) > 59 THEN _
- GOTO 13210
- START.OFFICE.HOURS = VAL(HJ$)
- IF START.OFFICE.HOURS < 0 OR START.OFFICE.HOURS > 2400 THEN _
- GOTO 13210
- 13216 XX$ = "What is the latest SYSOP wants to be paged? ---- HHMM "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 4 THEN _
- GOTO 13216
- IF FIX(VAL(MID$(HJ$,1,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,1,2))) > 24 OR _
- FIX(VAL(MID$(HJ$,3,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,3,2))) > 59 THEN _
- GOTO 13216
- END.OFFICE.HOURS = VAL(HJ$)
- IF END.OFFICE.HOURS < 0 OR END.OFFICE.HOURS > 2400 THEN _
- GOTO 13216
- IF START.OFFICE.HOURS > END.OFFICE.HOURS THEN _
- SWAP START.OFFICE.HOURS,END.OFFICE.HOURS
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE IF THE PRINTER'S "BELL" IS TO BE USED WHEN PAGING *
- ' *****************************************************************************
- '
- 13224 XX$ = "Use on-line printer's bell to the page SYSOP? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13226,13226,13224,13224
- 13226 M11$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE THE NUMBER OF RINGS RBBS-PC IS TO WAIT BEFORE ANSWERING *
- ' *****************************************************************************
- '
- 13228 A$ = ""
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=")+3,5) = "1Q0X1"
- 13229 XX$ = "How many rings should RBBS-PC wait before answering? " + A$
- GOSUB 50345
- LINE INPUT;HJ$
- REQUIRED.RINGS = FIX(VAL(HJ$))
- IF REQUIRED.RINGS < 0 OR REQUIRED.RINGS > 255 THEN _
- GOTO 13228
- IF REQUIRED.RINGS = 0 THEN _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=")+3,5) = "1Q0X1" : _
- RETURN
- 13233 XX$ = "Next call answered after" + STR$(REQUIRED.RINGS) + " rings. Do you want ringback? (YES/NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13237,13235,13233,13233
- 13235 IF REQUIRED.RINGS > 5 THEN _
- A$ = "(<6 for ringback)" : _
- GOTO 13229
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=")+3,5) = "255 "
- RETURN
- 13237 MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=")+3,5) = "254 "
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO HANDLE CALLS FROM 300 BAUD USERS *
- ' *****************************************************************************
- '
- 13238 XX$ = "Decline calls from users at 300 BAUD (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13243,13240,13238,13238
- 13240 GOSUB 50340
- XX$ = "Deny use of 300 BAUD to registered users (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13242,13243,13240,13240
- 13242 HJ$="YES=Registered users"
- 13243 RESTRICT.BAUD$=HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO DISPLAY COLOR/GRAPHICS ON HIS LOCAL MONITOR *
- ' *****************************************************************************
- '
- 13245 XX$ = " Using ANSI.SYS for color/graphics on your color monitor (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13247,13247,13245,13245
- 13247 USE.COLOR$=HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO GO OFF-LINE WHEN A DISK FULL CONDITIONS OCCURS*
- ' *****************************************************************************
- '
- 13249 XX$ = "Should RBBS-PC go off-line when DISK FULL occurs (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13251,13251,13249,13249
- 13251 DISKFULL.GO.OFFLINE$=HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * REQUEST DRIVE SPECIFICATION IN THE RANGE "A" TO THE MAXIMUM ALLOWABLE *
- ' *****************************************************************************
- '
- 13253 XX$ = "Specify single drive in the range A->"+M$+" for "+A$
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 1 THEN _
- GOTO 13253
- GOSUB 50654
- IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 13253
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ELECT TO USE RTS FOR MODEM FLOW CONTROL *
- ' *****************************************************************************
- '
- 13260 XX$ = "Does your modem use the RTS signal for flow control (YES OR NO) " ' CPC15-1B
- GOSUB 50345 ' CPC15-1B
- GOSUB 22380 ' CPC15-1B
- ON AB GOTO 13270,13270,13260,13260 ' CPC15-1B
- 13270 RTS$ = HJ$ ' CPC15-1B
- RETURN ' CPC15-1B
- '
- ' *****************************************************************************
- ' * ALLOW THE DRIVES AVAILABLE FOR DOWNLOADING TO BE SELECTED *
- ' *****************************************************************************
- '
- 13470 XX$ = "Specify download drives (max of" + STR$(MAXD) + " in the range A-> " + M$ + "). "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) < 1 OR LEN(HJ$) > MAXD THEN _
- GOTO 13470
- GOSUB 50654
- FOR I = 1 TO LEN(HJ$)
- A$(I) = MID$(HJ$,I,1)
- NEXT
- FOR I = 1 TO LEN(HJ$)
- IF A$(I) < "A" OR A$(I) > M$ THEN _
- GOTO 13470
- NEXT
- DRIVES.FOR.DOWNLOADS$ = HJ$
- IF DNLD.SUB < 1 THEN _
- RETURN
- FOR I = 1 TO DNLD.SUB
- IF INSTR(1,DRIVES.FOR.DOWNLOADS$,LEFT$(DNLD$(I),1)) = 0 THEN _
- DNLD$(I) = ""
- NEXT
- STOPIT = DNLD.SUB
- FOR I = 1 TO STOPIT
- IF DNLD$(I) <> "" THEN _
- GOTO 13583
- DNLD$(I) = DNLD$(I + 1)
- DNLD$(I + 1) = ""
- 13583 NEXT
- DNLD.SUB = 0
- FOR I = 1 TO STOPIT
- IF DNLD$(I) <> "" THEN _
- DNLD.SUB = DNLD.SUB + 1
- NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE THE NAME OF a DIRECTORY (A TEXT FILE) *
- ' *****************************************************************************
- '
- 13590 A$ = "Name of " + A$ + " directory (8 char. max)."
- MAX = 8
- GOTO 13599
- 13591 A$ = "Master directory name--used as ext. for others. (3 char. max)."
- 13593 MAX = 3
- 13599 XX$ = A$
- GOSUB 50345
- LINE INPUT;HJ$
- GOSUB 50654
- IF LEN(HJ$) < 1 OR LEN(HJ$) > MAX THEN _
- GOTO 13599
- I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 13599
- '
- ' *****************************************************************************
- ' * IS THE DEFAULT TO HAVE THE PROMPT BELL ON AFTER EACH COMMAND? *
- ' *****************************************************************************
- '
- 13750 XX$ = "Prompt bell default? (ON or OFF) "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 3 THEN _
- GOTO 13750
- GOSUB 50654
- IF HJ$ = "ON" THEN _
- GOTO 13820
- IF HJ$ = "OFF" THEN _
- GOTO 13820
- GOTO 13750
- 13820 PROMPT.BELL$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SPECIFY THE MAXIMUM TIME A USER CAN STAY ON (THE DEFAULT) *
- ' *****************************************************************************
- '
- 13840 XX$ = "Set maximum minutes a user can stay on the system "
- GOSUB 50345
- LINE INPUT;HJ$
- MINUTES.PER.SESSION! = VAL(HJ$)
- IF MINUTES.PER.SESSION! < 0 OR MINUTES.PER.SESSION! > 1440 THEN _
- GOTO 13840
- RETURN
- '
- ' ******************************************************************************
- ' * ALLOW THE MAXIMUM NUMBER OF MESSAGES ALLOWED TO BE SELECTED *
- ' ******************************************************************************
- '
- 13890 J = 999
- IF ((MAX.MSG.FILE.SIZE.FRM.DEF!-1-MAXIUM.NUMBER.OF.NODES)/5)<J THEN _
- J = (MAX.MSG.FILE.SIZE.FRM.DEF!-1-MAXIMUM.NUMBER.OF.NODES)/5
- GOSUB 50340
- XX$ = "Set maximum number of messages allowed (MAX = " + STR$(FIX(J)) + ")"
- GOSUB 50345
- LINE INPUT;HJ$
- MAX.ALLOWED.MSGS.FRM.DEF = VAL(HJ$)
- IF MAX.ALLOWED.MSGS.FRM.DEF < 1 AND _
- MAX.ALLOWED.MSGS.FRM.DEF > 999 THEN _
- GOTO 13890
- IF MAX.ALLOWED.MSGS.FRM.DEF > 0 AND _
- MAX.ALLOWED.MSGS.FRM.DEF < 1000 AND _
- MAX.ALLOWED.MSGS.FRM.DEF < J + 1 THEN _
- GOTO 13929
- XX$ = "Increase the " + MAIN.MESSAGE.FILE$ + " file to " + STR$((MAX.ALLOWED.MSGS.FRM.DEF*5) + 1 + MAXIMUM.NUMBER.OF.NODES) + " records? (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 13890,13927,13890,13890
- 13927 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF
- GOSUB 30450
- B3! = (MAX.ALLOWED.MSGS.FRM.DEF*5) + 1 + MAXIMUM.NUMBER.OF.NODES
- GOSUB 22080
- RETURN
- 13929 MAXIMUM.NUMBER.OF.MSGS = MAX.ALLOWED.MSGS.FRM.DEF
- GOSUB 30450
- RETURN
- '
- ' *****************************************************************************
- ' * IDENTIFY THE NUMBER OF MONTHS A USER CAN BE INACTIVE BEFORE HE IS PURGED *
- ' *****************************************************************************
- '
- 13940 XX$ = "Set number of months before an inactive user is purged. "
- GOSUB 50345
- LINE INPUT;HJ$
- ACT.MNTHS.B4.DELETING = VAL(HJ$)
- IF ACT.MNTHS.B4.DELETING < 1 OR ACT.MNTHS.B4.DELETING > 12 THEN _
- GOTO 13940
- RETURN
- '
- ' *****************************************************************************
- ' * SPECIFY THE COMMUNICATIONS PORT TO BE USED (1 OR 2) *
- ' *****************************************************************************
- '
- 14120 COMMIN = 1
- COMMAX = 2
- XX$ = "# of communication port to use (" + _
- MID$(STR$(COMMIN),2) + "-" + MID$(STR$(COMMAX),2) + _
- ", or 0 for LOCAL WORKSTATION)? "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 1 THEN _
- GOTO 14120
- X = FIX(VAL(MID$(HJ$,1,1)))
- IF X <> 0 AND (X < COMMIN OR X > COMMAX) THEN _
- GOTO 14120
- COM.PORT$ = "COM" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * DRIVE AND NAME OF FILE CONTAINING THE BULLETIN FILES *
- ' *****************************************************************************
- '
- 14790 GOSUB 15160
- DRIVE.FOR.BULLETINS$ = TB$
- GOSUB 14970
- BULLETIN.MENU$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * PREFIX USED TO NAME BULLETIN FILES *
- ' *****************************************************************************
- '
- 14800 GOSUB 14970
- IF LEN(HJ$) > 6 THEN _
- RETURN
- BULLETIN.PREFIX$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * DRIVE AND PATH FOR NINE MAJOR 'HELP' FILES *
- ' *****************************************************************************
- '
- 14810 GOSUB 15200
- HELP.PATH$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * PREFIX FOR FOR NINE MAJOR 'HELP' FILES *
- ' *****************************************************************************
- '
- 14820 GOSUB 14970
- IF LEN(HJ$) > 7 THEN _
- RETURN
- HELP.FILE.PREFIX$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF 'NEWUSER' FILE *
- ' *****************************************************************************
- '
- 14825 A$ = "File extension for help files (max 3 chars)"
- GOSUB 13593
- HELP.EXTENSION$ = HJ$
- RETURN
- 14830 GOSUB 17330
- NEWUSER.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF 'WELCOME' FILE *
- ' *****************************************************************************
- '
- 14840 GOSUB 17330
- WELCOME.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF 'FILE DIRECTORY' FILE'S EXTENSION *
- ' *****************************************************************************
- '
- 14850 GOSUB 13591
- DIRECTORY.EXTENTION$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF THE SYSOP'S MENU *
- ' *****************************************************************************
- '
- 14860 GOSUB 17330
- MENU$(1) = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF MAIN MESSAGES SUBSECTION'S MENU *
- ' *****************************************************************************
- '
- 14870 GOSUB 17330
- MENU$(2) = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF FILE SUBSECTION'S MENU *
- ' *****************************************************************************
- '
- 14880 GOSUB 17330
- MENU$(3) = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF UTILITIES SUBSECTIN'S MENU *
- ' *****************************************************************************
- '
- 14890 GOSUB 17330
- MENU$(4) = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF MENU LISTING THE CONFERENCES THAT ARE AVAILABLE *
- ' *****************************************************************************
- '
- 14900 GOSUB 17330
- CONFERENCE.MENU$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * GET ANSWER MENU *
- ' *****************************************************************************
- '
- 14905 GOSUB 17330
- ANS.MENU$ = SJ$+":"+HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF FILE CONTAINING UNACCEPTABLE USER NAMES *
- ' *****************************************************************************
- '
- 14910 GOSUB 17330
- TRASHCAN.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * HELP FOR CATEGORIZING UPLOADS *
- ' *****************************************************************************
- '
- 14915 CALL ASKRO ("Help for uploader to categorize is",24,UPCAT.HELP$)
- IF LEN(UPCAT.HELP$) > 7 THEN 14915
- CALL ALLCAPS (UPCAT.HELP$)
- RETURN
- '
- ' *****************************************************************************
- ' * DRIVE AVAILABLE FOR UPLOADING *
- ' *****************************************************************************
- '
- ON AB GOTO 15940,15940,15920,15920
- 14920 A$ = "uploading "
- GOSUB 13253
- DRIVE.FOR.UPLOADS$ = HJ$
- IF LEN(UPLOAD.SUBDIR$)>1 THEN _
- MID$(UPLOAD.SUBDIR$,1,1) = DRIVE.FOR.UPLOADS$
- RETURN
- '
- ' *****************************************************************************
- ' * GENERALIZED ROUTINE TO SELECT FILE NAME FOR ANY OPTION WITHIN CONFIG *
- ' *****************************************************************************
- '
- 14970 X$ = OPTION$
- 14980 GOSUB 31060
- PRINT "Specify name of the file for option " + X$ + ". ";
- 14990 LINE INPUT;HJ$
- GOSUB 50654
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 12 THEN _
- GOTO 14980
- L1 = INSTR(HJ$,".")
- IF L1 = 0 THEN _
- IF LEN(HJ$) < 9 THEN _
- GOTO 15045 ELSE _
- GOTO 14980
- IF L1 > 9 THEN _
- GOTO 14980
- IF L1 < 2 THEN _
- GOTO 14980
- IF LEN(HJ$)-L1 > 3 THEN _
- GOTO 14980
- 15045 I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 14980
- '
- ' *****************************************************************************
- ' * GENERALIZED ROUTINE TO SPECIFY A DISK DRIVE FOR ANY OPTION WITHIN CONFIG *
- ' *****************************************************************************
- '
- 15160 X$ = OPTION$
- 15170 XX$ = "Specify drive in the range A->" + M$ + " for option " + X$ + ". "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 1 THEN _
- GOTO 15170
- GOSUB 50654
- IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 15170
- TB$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * GENERALIZED ROUTINE FOR SPECIFYING DRIVE/PATH *
- ' *****************************************************************************
- '
- 15200 X$ = OPTION$
- 15205 CALL ASKRO ("Specify drive (A->"+M$+") and path for option "+X$+".",24,HJ$)
- IF LEN(HJ$) < 1 THEN 15205
- GOSUB 50654
- IF LEN(HJ$) = 1 THEN HJ$ = HJ$ + ":"
- IF MID$(HJ$,2,1)=":" THEN _
- IF LEFT$(HJ$,1) < "A" OR LEFT$(HJ$,1) > M$ THEN 15205
- IF INSTR(HJ$,"\")>0 THEN _
- IF RIGHT$(HJ$,1) <> "\" THEN HJ$ = HJ$ + "\"
- TB$ = HJ$
- RETURN
- 15230 RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO EXTEND A USER'S TIME FOR UPLOADS *
- ' *****************************************************************************
- '
- 15234 XX$ = "Extend by what fraction of time uploading "
- GOSUB 50345
- LINE INPUT;HJ$
- IF VAL(HJ$) < 0 OR VAL(HJ$) > 10 THEN _
- GOTO 15234
- UPLOAD.TIME.FACTOR! = VAL(HJ$)
- RETURN
- '
- ' *****************************************************************************
- ' * REQUEST NUMBER OF SECONDS TO WAIT AFTER INITIALIZING THE MODEM *
- ' *****************************************************************************
- '
- 15240 XX$ = "How many seconds of delay after modem initilization (1 to 99)?"
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 < 1 OR B1 > 99 THEN _
- GOTO 15240
- MODEM.INIT.WAIT.TIME = B1
- RETURN
- '
- ' *****************************************************************************
- ' * REQUEST NUMBER OF SECONDS TO DELAY PRIOR TO ISSUING MODEM COMMANDS *
- ' *****************************************************************************
- '
- 15250 XX$ = "# seconds to delay prior to issuing modem commands (0 to 99)?"
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 < 0 OR B1 > 99 THEN _
- GOTO 15250
- MODEM.COMMAND.DELAY.TIME = B1
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SPECIFY THE NUMBER OF ACTIVE BULLETINS *
- ' *****************************************************************************
- '
- 15290 XX$ = "Enter number of active 'bulletins' (0 to 99)"
- GOSUB 50345
- LINE INPUT;HJ$
- B1% = VAL(HJ$)
- IF B1% < 0 OR B1% > 99 THEN _
- GOTO 15290
- ACTIVE.BULLETINS = B1%
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE THE NAME OF THE "MESSAGES" FILE *
- ' *****************************************************************************
- '
- 15460 GOSUB 17330
- IF LEN(HJ$) > 8 OR INSTR(HJ$,".") THEN _
- RETURN
- MAIN.MESSAGE.FILE$ = SJ$ + ":" + HJ$
- MAIN.MESSAGE.BACKUP$ = MAIN.MESSAGE.FILE$ + ".BAK"
- MAINMSG$ = MAIN.MESSAGE.FILE$
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE THE NAME OF THE "CALLERS" FILE *
- ' *****************************************************************************
- '
- 15461 GOSUB 17330
- CALLERS.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE THE NAME OF THE "COMMENTS" FILE *
- ' *****************************************************************************
- '
- 15462 GOSUB 17330
- COMMENTS.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * DETERMINE THE NAME OF THE "USERS" FILE *
- ' *****************************************************************************
- '
- 15500 GOSUB 17330
- IF LEN(HJ$) > 8 OR INSTR(HJ$,".") THEN _
- RETURN
- MAIN.USER.FILE$ = SJ$ + ":" + HJ$
- MAINUSR$ = MAIN.USER.FILE$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO SPECIFY THE FOREGROUND COLOR FOR THE LOCAL COLOR MONITOR *
- ' *****************************************************************************
- '
- 15530 XX$ = "Enter foreground color (0-15,see BASIC manual)"
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 < 0 OR B1 > 15 THEN _
- GOTO 15530
- FG = B1
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO SPECIFY THE BACKGROUND COLOR FOR THE LOCAL COLOR MONITOR *
- ' *****************************************************************************
- '
- 15590 XX$ = "Enter background color (0-7,see BASIC manual)"
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 < 0 OR B1 > 7 THEN _
- GOTO 15590
- BG = B1
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW A SYSOP TO SPECIFY THE BORDER COLOR THE LOCAL COLOR MONITOR *
- ' *****************************************************************************
- '
- 15650 XX$ = "Enter the border color (0-7,see BASIC manual)"
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 < 0 OR B1 > 7 THEN _
- GOTO 15650
- BORDER = B1
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD RBBS-PC'S DEFAULT HAYES COMMANDS BE USED? *
- ' *****************************************************************************
- '
- 15710 CLS
- GOSUB 15780
- A$ = "RBBS-PC to use modem commands you specified as follows:"
- IF M14$ = "YES" THEN _
- A$ ="RBBS-PC to use standard modem commands as follows:"
- PRINT A$
- PRINT ""
- PRINT "1. Reset the modem : " + USER.RESET.COMMAND$
- PRINT ""
- PRINT "2. Initialize the modem : " + USER.INIT.COMMAND$
- PRINT " Note: End item 2 with:"
- PRINT " S0=1Q0X1 if answer on 0 rings" ' CPC15-1B
- PRINT " S0=254 if answer on >0 rings (no ring-back)"
- PRINT " S0=255 if answer on >0 rings (with ring-back)"
- PRINT ""
- PRINT "3. Count the number of rings : " + USER.COUNT.RINGS.COMMAND$
- PRINT ""
- PRINT "4. Answer the phone : " + USER.ANSWER.COMMAND$
- PRINT ""
- PRINT "5. Take the phone off the hook : " + USER.GO.OFFHOOK.COMMAND$
- PRINT ""
- PRINT "6. Clear the modem's firmware : " + USER.FIRMWARE.CLEAR.CMND$
- PRINT ""
- PRINT "7. Initialize modem's firmware : " + USER.INITIALIZE.COMMAND$
- PRINT " Note: End item 7 with:"
- PRINT " Q1 if item 2 ends with S0=255"
- PRINT ""
- PRINT "8. Write to modem's firmware : " + USER.FIRMWARE.WRITE.CMND$
- XX$ = "Select command string to change (1 to 8, CR to end)"
- GOSUB 50345
- LINE INPUT;HJ$
- IF HJ$ = "" THEN _
- RETURN
- IF VAL(HJ$) <1 OR VAL(HJ$) > 8 THEN _
- GOTO 15710
- I = VAL(HJ$)
- XX$ = "Enter modem command for item" + STR$(I) + " :"
- GOSUB 50345
- LINE INPUT;HJ$
- GOSUB 50654
- ON I GOTO 15712,15714,15716,15718,15720,15722,15724,15726
- 15712 USER.RESET.COMMAND$ = HJ$
- GOTO 15710
- 15714 USER.INIT.COMMAND$ = HJ$
- GOTO 15710
- 15716 USER.COUNT.RINGS.COMMAND$ = HJ$
- GOTO 15710
- 15718 USER.ANSWER.COMMAND$ = HJ$
- GOTO 15710
- 15720 USER.GO.OFFHOOK.COMMAND$ = HJ$
- GOTO 15710
- 15722 USER.FIRMWARE.CLEAR.CMND$ = HJ$
- GOTO 15710
- 15724 USER.INITIALIZE.COMMAND$ = HJ$
- GOTO 15710
- 15726 USER.FIRMWARE.WRITE.CMND$ = HJ$
- GOTO 15710
- 15780 M14$ = "NO"
- IF MODEM.ANSWER.COMMAND$ = USER.ANSWER.COMMAND$ AND _
- MODEM.COUNT.RINGS.COMMAND$ = USER.COUNT.RINGS.COMMAND$ AND _
- MODEM.GO.OFFHOOK.COMMAND$ = USER.GO.OFFHOOK.COMMAND$ AND _
- MID$(MODEM.INIT.COMMAND$,1,INSTR(MODEM.INIT.COMMAND$,"S0=")-1) = MID$(USER.INIT.COMMAND$,1,INSTR(USER.INIT.COMMAND$,"S0=")-1) AND _
- MODEM.RESET.COMMAND$ = USER.RESET.COMMAND$ AND _
- FIRMWARE.INITIALIZE.COMMAND$ = USER.INITIALIZE.COMMAND$ AND _
- FIRMWARE.CLEAR.COMMAND$ = USER.FIRMWARE.CLEAR.CMND$ AND _
- FIRMWARE.WRITE.COMMAND$ = USER.FIRMWARE.WRITE.CMND$ THEN _
- M14$ = "YES"
- RETURN
- 15790 FIRMWARE.INITIALIZE.COMMAND$= "AT&C1&D3B1E0V1M0S0=0&T5"
- FIRMWARE.CLEAR.COMMAND$ = "AT&F"
- FIRMWARE.WRITE.COMMAND$ = "&W"
- USER.ANSWER.COMMAND$ = MODEM.ANSWER.COMMAND$
- USER.COUNT.RINGS.COMMAND$ = MODEM.COUNT.RINGS.COMMAND$
- USER.GO.OFFHOOK.COMMAND$ = MODEM.GO.OFFHOOK.COMMAND$
- USER.INIT.COMMAND$ = MODEM.INIT.COMMAND$ ' CPC15-1B
- USER.RESET.COMMAND$ = MODEM.RESET.COMMAND$
- USER.INITIALIZE.COMMAND$ = FIRMWARE.INITIALIZE.COMMAND$
- USER.FIRMWARE.CLEAR.CMND$ = FIRMWARE.CLEAR.COMMAND$
- USER.FIRMWARE.WRITE.CMND$ = FIRMWARE.WRITE.COMMAND$
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE REMINDED OF THE MESSAGES THAT THEY LEFT? *
- ' *****************************************************************************
- '
- 15800 XX$ = "Remind users of the messages they left? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15810,15810,15800,15800
- 15810 MESSAGE.REMINDER$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD MACHINE LANGUAGE ROUTINES BE USED TO INCREASE SPEED? *
- ' *****************************************************************************
- '
- 15820 CALL GETYESNO ("Use machine language routines for speed",TURBO.RBBS$)
- RETURN
- 15830 CALL GETNUMYN ("Look no further when command not found in current section",RESTRICT.VALID.CMDS)
- RETURN
- '
- ' *****************************************************************************
- ' * IS THE USER ALLOWED TO BYPASS THE SYSTEM BULLETINS? *
- ' *****************************************************************************
- '
- 15840 XX$ = "Are system bulletins to be optional? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15860,15860,15840,15840
- 15860 BULLETINS.OPTIONAL$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD USER'S BE PREVENTED FROM DOWNLOADING FILES IN ASCII? *
- ' *****************************************************************************
- '
- 15880 XX$ = "Is non-ascii protocol required for binary files? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15900,15900,15880,15880
- 15900 REQUIRE.NON.ASCII$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * IS MICROCOM'S MNP PROTOCOL TO BE MADE AVAILABLE? *
- ' *****************************************************************************
- '
- 15911 XX$ = "Enable MICROCOM's MNP protocol? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15913,15913,15911,15911
- 15913 MNP.SUPPORT$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD THE MAIN DIRECTORY (TEXT FILE) BE OMITTED FROM THE "NEW" COMMAND? *
- ' *****************************************************************************
- '
- 15920 XX$ = "Is " + DIRECTORY.EXTENTION$ + " omitted from the N)ew command? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15940,15940,15920,15920
- 15940 OMIT.MAIN.DIRECTORY$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * IS "EXTENDED" LOGGING TO THE CALLERS FILE TO BE ACTIVATED? *
- ' *****************************************************************************
- '
- 15991 XX$ = "Do you want EXTENDED logging to the 'callers' file (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15992,15992,15991,15991
- 15992 EXTENDED.LOGGING$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * ARE COMMENTS TO BE RECORDED AS PRIVATE MESSAGES IN THE MESSAGE FILE? *
- ' *****************************************************************************
- '
- 15993 XX$ = "Do you want 'comments' recorded as private messages (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 15994,15994,15993,15993
- 15994 COMMENTS.AS.MESSAGES$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * CAN THE USER INTERRUPT THE "WELCOME" FILE DISPLAY WHEN HE LOGS ON? *
- ' *****************************************************************************
- '
- 16000 XX$ = "Is system 'welcome' interruptable (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16020,16020,16000,16000
- 16020 WELCOME.INTERRUPTABLE$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * HOW MANY SECONDS SHOULD USERS BE ALLOWED TO BE IDLE BEFORE LOGGING HIM OFF*
- ' *****************************************************************************
- '
- 16031 CALL MMINTEGER ("Seconds users can be idle before being logged off",1,32400,WAIT.BEFORE.DISCONNECT)
- RETURN
- '
- ' *****************************************************************************
- ' * IDENTIFY THE TYPE OF PC THAT RBBS-PC WILL BE RUNNING ON *
- ' *****************************************************************************
- '
- 16040 CLS
- LOCATE 5,5
- PRINT "Please select the type of PC which RBBS-PC will be running on :"
- LOCATE 7,10
- PRINT "0. IBM PC, IBM XT, or IBM AT"
- LOCATE 9,10
- PRINT "1. Compaq/Plus or compatable that uses interrupt 7F"
- LOCATE 11,10
- PRINT "2. IBM PCjr
- LOCATE 13,10
- PRINT "3. Other compatable under IBM's DOS (i.e. PC-DOS)
- 16050 GOSUB 50340
- XX$ = "Select environment (0 to 3, CR to end)"
- GOSUB 50345
- LINE INPUT;X$
- IF X$ = "" THEN _
- RETURN
- COMPUTER.TYPE = VAL(X$)
- 16060 IF COMPUTER.TYPE < 0 OR COMPUTER.TYPE > 3 THEN _
- GOTO 16050
- 16062 IF COMPUTER.TYPE = 0 THEN _
- COMPUTER.TYPE$ = "IBM PC, XT, or AT" : _
- RETURN
- IF COMPUTER.TYPE = 1 THEN _
- COMPUTER.TYPE$ = "Compaq/Plus" : _
- RETURN
- IF COMPUTER.TYPE = 2 THEN _
- COMPUTER.TYPE$ = "PCjr" : _
- GOTO 16071
- IF COMPUTER.TYPE = 3 THEN _
- COMPUTER.TYPE$ = "Other under PC-DOS"
- RETURN
- 16071 PCJR = 0
- XX$ = "Is an IBM PCjr Internal Modem installed? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16072,16073,16071,16071
- 16072 PCJR = 1
- 16073 RETURN
- '
- ' *****************************************************************************
- ' * CAN MODEM COMMANDS BE ISSUED EVEN WHEN THE MODEM IS RINGING? *
- ' *****************************************************************************
- '
- 16121 XX$ = "Wait to issue modem commands between rings? (YES OR NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16123,16123,16121,16121
- 16123 COMMANDS.BETWEEN.RINGS$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * WHAT BAUD RATE SHOULD RBBS-PC INITIALLY OPEN THE MODEM AT? *
- ' *****************************************************************************
- '
- 16124 XX$ = "Enter baud rate (300, 1200, 2400, 4800, 9600) to open modem at "
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 = 300 OR B1 = 1200 OR B1 = 2400 OR B1 = 4800 OR B1 = 9600 THEN _
- GOTO 16128 ELSE _
- GOTO 16124
- 16128 MODEM.INIT.BAUD$ = MID$(STR$(B1),2)
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF MENU CONTAINING THE LIST OF AVAILABLE 'DOORS' *
- ' *****************************************************************************
- '
- 16130 GOSUB 17330
- MENU$(5) = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF THE FILE BUILT DYNAMICALLY BY RBBS-PC TO EXIT TO A 'DOOR' *
- ' *****************************************************************************
- '
- 16140 GOSUB 17330
- RCTTY.BAT$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * NAME OF FILE TO RE-INVOKE RBBS-PC WHEN RETURNING FROM A 'DOOR' *
- ' *****************************************************************************
- '
- 16150 GOSUB 17330
- RBBS.BAT$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * DRIVE TO LOOK FOR 'COMMAND.COM' ON *
- ' *****************************************************************************
- '
- 16160 A$ = "COMMAND.COM "
- GOSUB 13253
- DISK.FOR.DOS$ = HJ$ + ":"
- RETURN
- '
- ' *****************************************************************************
- ' * REDIRECT I/O VIA THE 'CTTY' COMMAND *
- ' *****************************************************************************
- '
- 16170 CALL GETYESNO ("Use the CTTY command to redirect I/O on dropping to DOS?",REDIRECT.IO.METHOD$)
- RETURN
- '
- ' *****************************************************************************
- ' * INVOKE THE RBBS-PC 'DRIVERS' VIA THE SHELL COMMAND *
- ' *****************************************************************************
- '
- 16180 CALL GETYESNO ("Use the SHELL command to invoke protocol drivers?",GO.TO.SHELL$)
- IF GO.TO.SHELL$ = "YES" THEN _
- GO.TO.SHELL$ = "SHELL" : _
- RETURN
- IF GO.TO.SHELL$ = "NO" THEN _
- GO.TO.SHELL$ = "EXIT RBBS-PC" ' CPC15-1B
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD "DOORS" BE AVAILABLE? *
- ' *****************************************************************************
- '
- 16290 XX$ = "Is the 'door' subsystem available? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16310,16310,16290,16290
- 16310 DOORS.AVAILABLE$ = HJ$
- IF DOORS.AVAILABLE$ = "NO" THEN _
- RETURN
- GOSUB 50340
- LOCATE 24,1
- PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? ";
- GOSUB 22380
- ON AB GOTO 16340,16350,16290,16290
- 16340 DELAY! = FNTI! + 15
- '
- ' *****************************************************************************
- ' * NOTIFY THE SYSOP OF THE CONDITIONS FOR USING RBBS-PC "DOORS" *
- ' *****************************************************************************
- '
- CLS
- PRINT " ******Warning******"
- PRINT "IBM's DOS absolutely REQUIRES any software package running"
- PRINT "as a 'door' (i.e. via a communication port) to monitor the"
- PRINT "communication port! Unless the software that you invoke via
- PRINT "the RBBS-PC 'door' mechanism monitors the communication line,"
- PRINT "your system will be vulnerable to being hung -- and worse!!!"
- PRINT "If you don't THROUGHLY understand the section in RBBS-PC's"
- PRINT "documentation which discusses the pitfalls of opening RBBS-PC's"
- PRINT "'doors' to your users, DON'T use 'doors'!!!!!"
- 16345 IF FNTI! < DELAY! THEN _
- GOTO 16345
- CLS
- PRINT " ******Warning******"
- PRINT "Some environments require that you set the modem to answer"
- PRINT "on zero rings (i.e. 'auto-answer'). This is perilous to"
- PRINT "using doors because if a user in a door gets disconnected"
- PRINT "the modem is set to answer on the very next ring and someone who"
- PRINT "you may not want in the door or in DOS will find themselves"
- PRINT "able to do you grevious harm. If you have this type of environ-"
- PRINT "ment and insist on using 'doors' or dropping to DOS remotely,"
- PRINT "you may now choose to shoot yourself in the foot (or any other"
- PRINT "part of the anatomy that is appropriate for such foolhardiness)."
- CALL GETYESNO ("Do you want to shoot yourself in the foot",SHOOT.YOURSELF$)
- RETURN
- 16350 CLS
- '
- ' *****************************************************************************
- ' * NOTIFY THE SYSOP OF THE CONDITIONS FOR USING RBBS-PC UNDER MULTI-LINK *
- ' *****************************************************************************
- '
- PRINT "Multi-Link is a software product of The Software Link, Inc. located"
- PRINT "at 8601 Dunwoody Place, Suite 632, Atlanta, Georgia 30338. It allows"
- PRINT "IBM's DOS 2.x, or 3.x on the IBM PC to become a multi-tasking operating"
- PRINT "system. The Capital PC User Group has no connection whatsoever with"
- PRINT "this company or it's products. In fact The Software Link has only"
- PRINT "occasionally sent updates of it's new releases to me. RBBS-PC has"
- PRINT "only been tested under Release 3.02 of MultiLink and earlier versions
- PRINT "of MultiLink. I feel strongly that IBM's DOS for the PC should be"
- PRINT "multi-tasking. Because MultiLink provides this capability for the widest
- PRINT "ranges of DOS software for the IBM PC, RBBS-PC has been enhanced"
- PRINT "to run under Multi-Link. Any questions regarding RBBS-PC under Multi-Link"
- PRINT "(other than Release 3.02 of Multi-Link) should be directed to The
- PRINT "Software Link's customer support group at (404) 998-0788."
- PRINT ""
- PRINT "I have run RBBS-PC under Multi-Link since December 1983 -- since Multi-Link"
- PRINT "release 2.04. Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH
- PRINT "due to Multi-Link. I think it is a quality product but a bit over-priced."
- PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software"
- PRINT "should be relatively inexpensive."
- PRINT ""
- PRINT SPC(60);"Tom Mack
- PRINT SPC(60);"May, 25, 1986"
- 16360 LOCATE 23,1
- PRINT "Current Multi-Link terminal type for DOORS is ";DOORS.TERMINAL.TYPE
- 16370 GOSUB 50340
- LOCATE 24,1
- PRINT "Enter Multi-Link terminal type for DOORS ";
- GOSUB 17420
- DOORS.TERMINAL.TYPE = B1
- IF DOORS.TERMINAL.TYPE < 0 THEN _
- GOTO 16370
- IF DOORS.TERMINAL.TYPE > 12 THEN _
- GOTO 16370
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE LIMITED TO A MAXIMUM AMOUNT OF TIME ON THE SYSTEM EACH DAY*
- ' *****************************************************************************
- '
- 16650 XX$ = "Limit the maximum time a users can be on each day? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16670,16670,16650,16650
- 16670 LIMIT.DAILY.TIME$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE REMINDED OF THE NUMBER FILE TRANSFERS THAT THEY HAVE DONE?*
- ' *****************************************************************************
- '
- 16690 XX$ = "Remind users of # uploads and downloads? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16710,16710,16690,16690
- 16710 REMIND.FILE.TRANSFERS$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD USERS BE REMINDED OF THEIR TERMINAL'S PROVILE? *
- ' *****************************************************************************
- '
- 16722 XX$ = "Remind users of their terminal's profile? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16724,16724,16722,16722
- 16724 REMIND.PROFILE$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT "DUMB" MODEM (BUT WITH AUTO-ANSWER) MODE *
- ' *****************************************************************************
- '
- 16725 XX$ = "Are you using a non-Hayes auto-answer only modem? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 16726,16726,16725,16725
- 16726 DUMB.MODEM$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * SELECT A DEFAULT USER'S PAGE LENGTH *
- ' *****************************************************************************
- '
- 16730 XX$ = "Default user page length?(a value between 0 and 255)"
- GOSUB 50345
- LINE INPUT;HJ$
- B1 = VAL(HJ$)
- IF B1 < 0 OR B1 > 255 THEN _
- GOTO 16730
- PAGE.LENGTH = B1
- RETURN
- '
- ' *****************************************************************************
- ' * SPECIFY THE MAXIMUM NUMBER OF LINES ALLOWED PER MESSAGE *
- ' *****************************************************************************
- '
- 16790 CALL MMINTEGER ("Maximum number of lines allowed per message (1-99)",1,99,MAX.MESSAGE.LINES)
- RETURN
- '
- ' *****************************************************************************
- ' * MINIMUM SECURITY LEVEL TO GET ONTO RBBS-PC *
- ' *****************************************************************************
- '
- 17160 GOSUB 18730
- GOSUB 17410
- MINIMUM.LOGON.SECURITY = B1
- RETURN
- '
- ' *****************************************************************************
- ' * DEFAULT SECURITY LEVEL FOR NEW USERS *
- ' *****************************************************************************
- '
- 17170 GOSUB 18730
- GOSUB 17410
- DEFAULT.SECURITY.LEVEL = B1
- RETURN
- '
- ' *****************************************************************************
- ' * SECURITY LEVEL FOR SYSOP *
- ' *****************************************************************************
- '
- 17180 GOSUB 18730
- GOSUB 17410
- SYSOP.SECURITY.LEVEL = B1
- RETURN
- '
- ' *****************************************************************************
- ' * FILE CONTAINING FILE NAMES WITH DOWNLOAD SECURITY *
- ' *****************************************************************************
- '
- 17190 GOSUB 17330
- FILESEC.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * MINIMUM SECURITY LEVEL TO SEE THE SYSOP MENU *
- ' *****************************************************************************
- '
- 17200 GOSUB 18730
- GOSUB 17410
- SYSOP.MENU.SECURITY.LEVEL = B1
- RETURN
- '
- ' *****************************************************************************
- ' * MINIMUM SECURITY LEVEL TO USE 'DOORS' *
- ' *****************************************************************************
- '
- 17210 GOSUB 18730
- GOSUB 17410
- DOORS.SECURITY.LEVEL = B1
- RETURN
- '
- ' *****************************************************************************
- ' * MAXIMUM NUMBER OF SECURITY VIOLATIONS ALLOWED IN A SINGLE SESSION *
- ' *****************************************************************************
- '
- 17220 CALL MMINTEGER("MAXIMUM # security violations allowed (0=no limit)",0,99,MAXIMUM.VIOLATIONS)
- RETURN
- '
- ' *****************************************************************************
- ' * ASSIGN SECURITY LEVELS TO THE SYSOP COMMANDS *
- ' *****************************************************************************
- '
- 17230 CO$ = "SYSOP"
- IF IPAGE = 2 THEN _
- XX$ = "ALL " + CO$ + " commands use default letters? (YES or NO)"_
- ELSE_
- XX$ = "ALL " + CO$ + " commands have security? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 17232,17231,17230,17230
- 17231 IF IPAGE = 2 THEN _
- SYSOP.COMMANDS$ = SYSOP.COMMANDS.DEFAULTS$ : _
- FOR I = 1 TO NUM.SYSOP : _
- SYSOP.FUNCTION$(I,2) = MID$(SYSOP.COMMANDS$,I,1) : _
- NEXT : _
- RETURN
- HJ$ = "all " + CO$ + " commands"
- GOSUB 17410
- FOR I = 1 TO NUM.SYSOP
- SYSOP.FUNCTION(I) = B1
- NEXT
- SF = B1
- RETURN
- 17232 GOSUB 25180
- IROW = 4
- ICOL = 10
- FOR I = 1 TO NUM.SYSOP
- LOCATE IROW+I,ICOL
- IF IPAGE <> 2 THEN _
- PRINT SYSOP.FUNCTION$(I,1) + STR$(SYSOP.FUNCTION(I))_
- ELSE _
- PRINT SYSOP.FUNCTION$(I,1);" ";SYSOP.FUNCTION$(I,2)
- NEXT
- 17233 GOSUB 25210
- IF X$ = "" THEN _
- RETURN
- FF = VAL(X$)
- IF (FF < 1 OR FF > NUM.SYSOP) THEN _
- GOTO 17233
- HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- IF IPAGE = 2 THEN _
- SYSOP.FUNCTION$(FF,2) = HK$ : _
- MID$(SYSOP.COMMANDS$,FF,1) = HK$ _
- ELSE _
- SYSOP.FUNCTION(FF) = B1
- GOTO 17232
- '
- ' *****************************************************************************
- ' * ASSIGN SECURITY LEVELS TO THE MAIN MENU'S COMMANDS *
- ' *****************************************************************************
- '
- 17240 CO$ = "Main Menu"
- IF IPAGE = 2 THEN _
- XX$ = "ALL " + CO$ + " commands use default letters? (YES or NO)"_
- ELSE_
- XX$ = "ALL " + CO$ + " commands have SAME security? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 17242,17241,17240,17240
- 17241 IF IPAGE = 2 THEN _
- MAIN.COMMANDS$ = MAIN.COMMANDS.DEFAULTS$ : _
- FOR I = 1 TO NUM.MAIN : _
- MAIN.FUNCTION$(I,2) = MID$(MAIN.COMMANDS$,I,1) : _
- NEXT : _
- RETURN
- HJ$ = "all " + CO$ + " commands"
- GOSUB 17410
- FOR I = 1 TO NUM.MAIN
- MAIN.FUNCTION(I) = B1
- NEXT
- MM = B1
- RETURN
- 17242 GOSUB 25180
- IROW = 4
- ICOL = 10
- FOR I = 1 TO NUM.MAIN
- LOCATE IROW+I,ICOL
- IF IPAGE = 2 THEN _
- PRINT MAIN.FUNCTION$(I,1);" ";MAIN.FUNCTION$(I,2);_
- ELSE _
- PRINT MAIN.FUNCTION$(I,1);STR$(MAIN.FUNCTION(I));
- NEXT
- 17243 GOSUB 25210
- IF X$ = "" THEN _
- RETURN
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR(MAIN.COMMANDS.DEFAULTS$,X$)
- IF FF = 0 THEN _
- GOTO 17243
- HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- IF IPAGE = 2 THEN _
- MAIN.FUNCTION$(FF,2) = HK$ : _
- MID$(MAIN.COMMANDS$,FF,1) = HK$ _
- ELSE _
- MAIN.FUNCTION(FF) = B1
- GOTO 17242
- '
- ' *****************************************************************************
- ' * ASSIGN SECURITY LEVELS TO THE FILE MENU'S COMMANDS *
- ' *****************************************************************************
- '
- 17250 CO$ = "File Menu"
- IF IPAGE = 2 THEN _
- XX$ = "ALL " + CO$ + " commands use default letters? (YES or NO)"_
- ELSE_
- XX$ = "ALL " + CO$ + " commands = SAME security level? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 17252,17251,17250,17250
- 17251 IF IPAGE = 2 THEN _
- FILE.COMMANDS$ = FILE.COMMANDS.DEFAULTS$ : _
- FOR I=1 TO NUM.FILES : _
- FILES.FUNCTION$(I,2) = MID$(FILE.COMMANDS$,I,1) : _
- NEXT : _
- RETURN
- HJ$ = "all " + CO$ + " commands"
- GOSUB 17410
- FOR I = 1 TO NUM.FILES
- FILES.FUNCTION(I) = B1
- NEXT
- FC = B1
- RETURN
- 17252 GOSUB 25180
- IROW = 4
- ICOL = 10
- FOR I = 1 TO NUM.FILES
- LOCATE IROW+I,ICOL
- IF IPAGE = 2 THEN _
- PRINT FILES.FUNCTION$(I,1);" ";FILES.FUNCTION$(I,2);_
- ELSE_
- PRINT FILES.FUNCTION$(I,1);STR$(FILES.FUNCTION(I));
- NEXT
- 17253 GOSUB 25210
- IF X$ = "" THEN _
- RETURN
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR(FILE.COMMANDS.DEFAULTS$,X$)
- IF FF = 0 THEN _
- GOTO 17253
- HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- IF IPAGE = 2 THEN _
- FILES.FUNCTION$(FF,2) = HK$ : _
- MID$(FILE.COMMANDS$,FF,1) = HK$ _
- ELSE _
- FILES.FUNCTION(FF) = B1
- GOTO 17252
- '
- ' *****************************************************************************
- ' * ASSIGN SECURITY LEVELS TO THE UTILITY MENU'S COMMANDS *
- ' *****************************************************************************
- '
- 17260 CO$ = "Utilities"
- IF IPAGE <> 2 THEN _
- XX$ = "ALL " + CO$ + " commands = SAME security level? (YES or NO)"_
- ELSE_
- XX$ = "ALL " + CO$ + " commands use default letters? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 17262,17261,17260,17260
- 17261 IF IPAGE = 2 THEN _
- UTIL.COMMANDS$ = UTIL.COMMANDS.DEFAULTS$ : _
- FOR I = 1 TO NUM.UTILITY : _
- UTILITY.FUNCTION$(I,2) = MID$(UTIL.COMMANDS$,I,1) : _
- NEXT : _
- RETURN
- HJ$ = "all " + CO$ + " commands"
- GOSUB 17410
- FOR I = 1 TO NUM.UTILITY
- UTILITY.FUNCTION(I) = B1
- NEXT
- UE = B1
- RETURN
- 17262 GOSUB 25180
- IROW = 4
- ICOL = 10
- FOR I = 1 TO NUM.UTILITY
- LOCATE IROW+I,ICOL
- IF IPAGE <> 2 THEN_
- PRINT UTILITY.FUNCTION$(I,1);STR$(UTILITY.FUNCTION(I))_
- ELSE_
- PRINT UTILITY.FUNCTION$(I,1);" ";UTILITY.FUNCTION$(I,2)
- NEXT
- 17263 GOSUB 25210
- IF X$ = "" THEN _
- RETURN
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR(UTIL.COMMANDS.DEFAULTS$,X$)
- IF FF = 0 THEN _
- GOTO 17263
- HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- IF IPAGE = 2 THEN_
- UTILITY.FUNCTION$(FF,2) = HK$ : _
- MID$(UTIL.COMMANDS$,FF,1) = HK$ _
- ELSE _
- UTILITY.FUNCTION(FF) = B1
- GOTO 17262
- '
- ' *****************************************************************************
- ' * ASSIGN SECURITY LEVELS TO GLOBAL COMMANDS *
- ' *****************************************************************************
- '
- 17264 CO$ = "Global"
- IF IPAGE <> 2 THEN _
- XX$ = "ALL " + CO$ + " commands = SAME security level? (YES or NO)"_
- ELSE_
- XX$ = "ALL " + CO$ + " commands use default letters? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 17266,17265,17264,17264
- 17265 IF IPAGE = 2 THEN _
- GLOBAL.COMMANDS$ = GLOBAL.COMMANDS.DEFAULTS$ : _
- FOR I = 1 TO NUM.GLOBAL : _
- GLOBAL.FUNCTION$(I,2) = MID$(GLOBAL.COMMANDS$,I,1) : _
- NEXT : _
- RETURN
- HJ$ = "all " + CO$ + " commands"
- GOSUB 17410
- FOR I = 1 TO NUM.GLOBAL
- GLOBAL.FUNCTION(I) = B1
- NEXT
- GB = B1
- RETURN
- 17266 GOSUB 25180
- IROW = 4
- ICOL = 10
- FOR I = 1 TO NUM.GLOBAL
- LOCATE IROW+I,ICOL
- IF IPAGE = 2 THEN_
- PRINT GLOBAL.FUNCTION$(I,1);" ";GLOBAL.FUNCTION$(I,2)_
- ELSE_
- PRINT GLOBAL.FUNCTION$(I,1);STR$(GLOBAL.FUNCTION(I))
- NEXT
- 17267 GOSUB 25210
- IF X$ = "" THEN _
- RETURN
- SWAP HJ$,X$
- GOSUB 50654
- SWAP HJ$,X$
- FF = INSTR(GLOBAL.COMMANDS.DEFAULTS$,X$)
- IF FF = 0 THEN _
- GOTO 17267
- HJ$ = "all " + CO$ + " '" + X$ + "' commands"
- GOSUB 17410
- IF IPAGE = 2 THEN _
- GLOBAL.FUNCTION$(FF,2) = HK$ : _
- MID$(GLOBAL.COMMANDS$,FF,1) = HK$ _
- ELSE _
- GLOBAL.FUNCTION(FF) = B1
- GOTO 17266
- '
- ' *****************************************************************************
- ' * FILE NAME CONTAINING SPECIAL TEMPORARY PASSWORDS WITH TEMPORARY PRIVILEGES*
- ' *****************************************************************************
- '
- 17270 GOSUB 17330
- PASSWORD.FILE$ = SJ$ + ":" + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * MAXIMUM NUMBER OF TEMPORARY PASSWORD CHANGES ALLOWED IN A SINGLE SESSION *
- ' *****************************************************************************
- '
- 17290 CALL MMINTEGER ("Maximum number of password changes is? (0 or more) ",0,99,MAXIMUM.PASSWORD.CHANGES)
- RETURN
- '
- ' *****************************************************************************
- ' * MINIMUM SECURITY LEVEL IN ORDER TO TEMPORARILY CHANGE PASSWORDS *
- ' *****************************************************************************
- '
- 17300 GOSUB 18730
- GOSUB 17410
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD = B1
- RETURN
- '
- ' *****************************************************************************
- ' * MINIMUM SECURITY LEVEL REQUIRED TO OVERWRITE FILES WHEN UPLOADING *
- ' *****************************************************************************
- '
- 17310 HJ$ = "overwriting files on upload"
- GOSUB 17410
- OVERWRITE.SECURITY.LEVEL = B1
- RETURN
- '
- ' *****************************************************************************
- ' * SECURITY LEVEL THAT IS EXEMPT FROM BEING PURGED WHEN PACKING USER FILE *
- ' *****************************************************************************
- '
- 17316 GOSUB 18730
- GOSUB 17410
- SEC.LVL.EXEMPT.FRM.PURGING = B1
- RETURN
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO SIMPLY SPECIFY A DRIVE LETTER FOR ANY OPTION *
- ' *****************************************************************************
- '
- 17330 X$ = OPTION$
- XX$ = "Specify drive (A->" + M$ + ") where file for option " + X$ + " will be located. "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 1 THEN _
- HJ$ = X$ : _
- GOTO 17330
- GOSUB 50654
- IF HJ$<"A" OR HJ$>M$ THEN _
- HJ$ = X$ : _
- GOTO 17330
- SJ$ = HJ$
- GOSUB 14980
- RETURN
- '
- ' *****************************************************************************
- ' * STANDARD ROUTINE TO REQUEST A SECURITY LEVEL FOR A SPECIFIC COMMAND *
- ' *****************************************************************************
- '
- 17410 GOSUB 50340
- LOCATE 24,1
- XX$ = "Security level for " + HJ$ + " is? "
- IF IPAGE = 2 THEN _
- XX$ = "New command for " + HJ$ + " is? "
- PRINT XX$;
- 17420 LINE INPUT;HK$
- IF HK$ = "" THEN HK$ = " "
- IF IPAGE = 2 AND LEN(HK$) < 2 THEN _
- RETURN
- IF IPAGE = 2 THEN _
- GOTO 17410
- B1 = VAL(HK$)
- IF B1 = 0 AND HK$ <> "0" THEN _
- GOTO 17410
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY OPTION *
- ' *****************************************************************************
- '
- 17500 CALL GETYESNO ("Show section in command prompt",SHOW.SECTION$)
- RETURN
- 17550 CALL GETYESNO ("Show commands in command prompt",COMMANDS.IN.PROMPT$)
- RETURN
- 17560 CALL GETYESNO ("Let new users set their preferences",NEWUSER.SETS.DEFAULTS$)
- RETURN
- 17570 CALL GETYESNO ("Add new users to USERS file",REMEMBER.NEW.USERS$)
- RETURN
- 17580 CALL GETYESNO ("Log on new users even when USERS file full",SURVIVE.NOUSER.ROOM$)
- RETURN
- 17590 CALL GETYESNO ("Limit file searches to FMS directory",LIMIT.SEARCH.TO.FMS$)
- RETURN
- 17600 CALL GETYESNO ("Enable download of new files at logon",NEW.FILES.CHECK$)
- RETURN
- 17610 CALL GETYESNO ("Turn printer off after each recycle",TURN.PRINTER.OFF$)
- RETURN
- '
- ' *****************************************************************************
- ' * GET REQUIRED QUESTIONNAIRE THAT ALL CALLERS MUST ANSWER ONCE *
- ' *****************************************************************************
- '
- 17620 CALL GETYESNO ("Play music themes for RBBS functions",MUSIC$)
- RETURN
- 17630 CALL GETYESNO ("RESTRICT callers using SUBSCRIPTION period",RESTRICT.BY.DATE$)
- RETURN
- 17640 CALL GETNUMYN ("Use EXTERNAL XMODEM (rather than RBBS's)",USE.EXTERNAL.XMODEM)
- RETURN
- 17650 CALL GETNUMYN ("Force check every time whether can AUTODOWNLOAD",ASK.IDENTITY)
- RETURN
- 17700 CALL ASKRO ("Name of questionnaire all callers must answer once",24,_
- REQUIRED.QUESTIONNAIRE$)
- CALL ALLCAPS (REQUIRED.QUESTIONNAIRE$)
- RETURN
- 18000 CALL ASKUPOS ("Specify field in USERS file that will identify callers",_
- START.HASH,LEN.HASH,PROMPT.HASH$)
- 18002 IF START.HASH < 1 OR LEN.HASH < 1 THEN _
- BEEP : _
- GOTO 18000
- IF START.HASH = 1 THEN _
- HASH.ID$ = "(NAME)"_
- ELSE_
- HASH.ID$ = "(nonstandard)"
- RETURN
- 18100 CALL ASKUPOS ("Use what field to distinguish callers with same ID?",_
- START.INDIV,LEN.INDIV,PROMPT.INDIV$)
- 18102 IF START.INDIV = 0 OR LEN.INDIV = 0 THEN_
- INDIV.ID$ = "(none)"_
- ELSE_
- INDIV.ID$ = "(nonstandard)"
- RETURN
- 18200 CALL ASKRO ("New default category code",24,DEFAULT.CATEGORY.CODE$)
- IF LEN(DEFAULT.CATEGORY.CODE$) > 3 THEN _
- DEFAULT.CATEGORY.CODE$ = LEFT$(DEFAULT.CATEGORY.CODE$,3) _
- ELSE DEFAULT.CATEGORY.CODE$ = DEFAULT.CATEGORY.CODE$ + _
- SPACE$(3 - LEN(DEFAULT.CATEGORY.CODE$))
- RETURN
- 18300 GOSUB 15200
- CALL ASKRO ("New file of directory categories",24,DIR.CATEGORY.FILE$)
- DIR.CATEGORY.FILE$ = TB$ + DIR.CATEGORY.FILE$
- RETURN
- 18350 CALL ASKRO ("Copy upload description to (Drive/path/name)",24,ALWAYS.STREW.TO$)
- CALL ALLCAPS (ALWAYS.STREW.TO$)
- RETURN
- 18360 CALL ASKRO ("Restrict 'ALL' to directory named ([ENTER] = unrestriced)",24,MASTER.DIRECTORY.NAME$)
- RETURN
- 18400 CALL MMINTEGER ("New max length of upload description (40-46)",40,46,MAX.DESC.LEN)
- RETURN
- 18500 CALL ANYINTEGER ("Min security to view new uploads",MIN.SEC.TO.VIEW)
- RETURN
- '
- ' *****************************************************************************
- ' * GET UPLOAD DIRECTORY DRIVE/PATH *
- ' *****************************************************************************
- '
- 18510 CALL ANYINTEGER ("SECURITY level callers gets when SUBSCRIPTION period EXPIRES",EXPIRED.SECURITY)
- RETURN
- 18515 CALL ANYINTEGER ("Min security for uploader to assign a category",SL.CATEGORIZE.UPLOADS)
- RETURN
- 18520 CALL MMINTEGER ("Default # days in SUBSCRIPTION PERIOD",0,32000,DAYS.IN.SUBSCRIPTION.PERIOD)
- RETURN
- 18530 CALL MMINTEGER ("# days left in subscription before start WARNING",0,32000,DAYS.TO.WARN)
- RETURN
- 18540 CALL MMINTEGER ("# seconds to WAIT for DTR to drop",0,30,DTR.DROP.DELAY)
- RETURN
- '
- ' *****************************************************************************
- ' * GET UPLOAD DIRECTORY DRIVE/PATH *
- ' *****************************************************************************
- '
- 18550 GOSUB 15200
- UPLOAD.PATH$ = HJ$
- RETURN
- 18600 GOSUB 15200
- DIRECTORY.PATH$ = HJ$
- RETURN
- 18620 GOSUB 15200
- PROTOCOL.PATH$ = HJ$
- IF INSTR(PROTOCOL.PATH$,"\") > 0 THEN _
- IF RIGHT$(PROTOCOL.PATH$,1) <> "\" THEN _
- PROTOCOL.PATH$ = PROTOCOL.PATH$ + "\"
- RETURN
- '
- ' *****************************************************************************
- ' * LET THE SYSOP SPECIFY THE NUMBER OF RECORDS IN THE USER FILE *
- ' *****************************************************************************
- '
- 18730 HJ$ = "option " + HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * LET THE SYSOP SPECIFY THE NUMBER OF RECORDS IN THE USER FILE *
- ' *****************************************************************************
- '
- 19189 IF F = 2 THEN _
- GOSUB 22560 : _
- RETURN
- GOSUB 22100
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE USER TO SPECIFY THE MAXIMUM NUMBER OF RBBS-PC'S TO CONFIGURE FOR*
- ' *****************************************************************************
- '
- 21750 CALL MMINTEGER ("Maximum number of concurrent RBBS-PC's? (1 - 36)",1,36,B1)
- IF MAXIMUM.NUMBER.OF.NODES = B1 THEN _
- RETURN
- B3! = MAX.MSG.FILE.SIZE.FRM.DEF!
- GOSUB 30610
- RETURN
- 21760 CALL MMINTEGER ("Size of internal BUFFER for text files (128-4096)",128,4096,BUFFER.SIZE)
- RETURN
- '
- ' *****************************************************************************
- ' * IDENTIFY THE NETWORK TYPES THAT RBBS-PC CAN RUN IN *
- ' *****************************************************************************
- '
- 21810 CLS
- LOCATE 3,5
- PRINT "RBBS-PC is supported in the following:"
- LOCATE 5,20
- PRINT "Environment"
- LOCATE 7,10
- PRINT "0. Single RBBS-PC in an IBM DOS environment"
- LOCATE 9,10
- PRINT "1. MultiLink (multi-tasking under single DOS)
- LOCATE 11,10
- PRINT "2. Omninet (CORVUS)"
- LOCATE 13,10
- PRINT "3. PC-NET (Orchid)"
- LOCATE 15,10
- PRINT "4. DESQview (Quarterdeck)"
- LOCATE 17,10
- PRINT "5. 10 NET (Fox Research)"
- LOCATE 19,10
- PRINT "6. IBM DOS (3.1 or above) file sharing not supported"
- 21870 GOSUB 50340
- XX$ = "Select environment (0 to 6, CR to end)"
- GOSUB 50345
- LINE INPUT;X$
- IF X$ = "" THEN _
- RETURN
- NETWORK.TYPE = VAL(X$)
- GOSUB 21890
- RETURN
- 21890 IF NETWORK.TYPE < 0 OR NETWORK.TYPE > 6 THEN _
- GOTO 21870
- 21895 IF NETWORK.TYPE = 0 THEN _
- NETWORK.TYPE$ = "IBM's DOS"
- 21900 IF NETWORK.TYPE = 1 THEN _
- NETWORK.TYPE$ = "MultiLink"
- IF NETWORK.TYPE = 2 THEN _
- NETWORK.TYPE$ = "Omninet"
- IF NETWORK.TYPE = 3 THEN _
- NETWORK.TYPE$ = "PC-NET"
- IF NETWORK.TYPE = 4 THEN _
- NETWORK.TYPE$ = "DESQview"
- IF NETWORK.TYPE = 5 THEN _
- NETWORK.TYPE$ = "10 NET"
- IF NETWORK.TYPE = 6 THEN _
- NETWORK.TYPE$ = "IBM's file sharing -- future"
- IF DONT.ASK THEN _
- RETURN
- IF NETWORK.TYPE > 1 AND NETWORK.TYPE < 6 THEN _
- CALL GETYESNO ("Are you running Multi-Link with " + NETWORK.TYPE$,MLCOM$) : _
- MLCOM = FALSE : _
- IF MLCOM$ = "YES" THEN _
- MLCOM = TRUE
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT NUMBER OF RECORDS IN THE USER FILE *
- ' *****************************************************************************
- '
- 21910 IF F = 2 THEN _
- GOSUB 22560 : _
- RETURN
- GOSUB 22100
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT HOW RBBS-PC IS TO RECYCLE WHEN A USER LOGS OFF *
- ' *****************************************************************************
- '
- 21950 GOSUB 50340
- XX$ = "How to recycle when users log off (<S>YSTEM or <I>NTERNAL)? "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 8 THEN _
- GOTO 21950
- GOSUB 50654
- IF LEFT$(HJ$,1) = "S" THEN _
- HJ$ = "SYSTEM" : _
- RECYCLE.TO.DOS = 1 : _
- GOTO 22020
- IF LEFT$(HJ$,1) = "I" THEN _
- HJ$ = "INTERNAL" : _
- RECYCLE.TO.DOS = 0 : _
- GOTO 22020
- GOTO 21950
- 22020 RECYCLE.TO.DOS$ = HJ$
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SPECIFY THE MAXIMUM NUMBER OF RECORDS IN MESSAGES FILE *
- ' *****************************************************************************
- '
- 22040 GOSUB 50340
- XX$ = "Max. records in preformatted " + MAIN.MESSAGE.FILE$ + " file (>" + STR$(5*MAX.ALLOWED.MSGS.FRM.DEF + 1 + MAXIMUM.NUMBER.OF.NODES) + "):"
- GOSUB 50345
- LINE INPUT;HJ$
- B3! = VAL(HJ$)
- IF B3! <= (5*MAX.ALLOWED.MSGS.FRM.DEF + 1 + MAXIUM.NUMBER.OF.NODES) OR _
- B3! > 9999999! THEN _
- GOTO 22040
- 22080 B1 = MAXIMUM.NUMBER.OF.NODES
- GOSUB 30610
- MAX.MSG.FILE.SIZE.FRM.DEF! = B3!
- RETURN
- '
- ' *****************************************************************************
- ' * BUILD THE USERS FILE TO SUIT *
- ' *****************************************************************************
- '
- 22100 GOSUB 50340
- FF = CURRENT.USER.COUNT
- IF FF > 1 THEN _
- FF = FF-1
- GOSUB 50340
- XX$ = STR$(FF) + " of" + STR$(HIGHEST.USER.RECORD) + _
- " records used. Enter new maximum number of records for " + _
- MAIN.USER.FILE$ + ":"
- GOSUB 50345
- LINE INPUT;HJ$
- 22120 B1 = VAL(HJ$)
- IF B1 < 1 OR B1 > 99999! OR B1 < FF THEN _
- GOTO 22100
- 22140 B2 = 2
- WHILE B2 < B1
- B2 = B2 * 2
- WEND
- IF MAX.USR.FILE.SIZE.FRM.DEF = B2 THEN _
- RETURN
- XX$ = "Change " + MAIN.USER.FILE$ + " file to" + STR$(B2) + " records? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 22100,22150,22100,22100
- 22150 MAX.USR.FILE.SIZE.FRM.DEF = B2
- D.FLAG = -1
- GOSUB 24110
- IB = 1
- MAX.USR.FILE.SIZE.FRM.DEF = B2
- HIGHEST.USER.RECORD = B2
- GOSUB 30450
- GOSUB 50340
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HANDLE THE FUNCTION KEYS, SCROLL BETWEEN CONFIG'S *
- ' * PAGES OF OPTIONS, AND USER'S SELECTING A NUMERIC 4-CHARACTER OPTION. *
- ' *****************************************************************************
- '
- 22160 I! = FRE(C$)
- Y$ = INKEY$
- IX = 0
- IF LEN(Y$) < 1 THEN _
- GOTO 22160
- IF LEN(Y$) = 2 THEN _ ' IF A FUNCTION KEY, BRANCH
- GOTO 22240
- IF ASC(Y$) = 13 THEN _ ' IF A CARRIAGE RETURN, RETURN
- IX = 22 : _
- RETURN
- IF ASC(Y$) = 8 AND LEN(HJ$) > 0 THEN _
- HJ$ = LEFT$(HJ$,LEN(HJ$)-1) : _
- PRINT CHR$(29) + " " + CHR$(29); : _
- GOTO 22160
- IF ASC(Y$) < 48 OR ASC(Y$) > 57 THEN _
- GOTO 22160
- PRINT Y$;
- HJ$ = HJ$ + Y$
- OPTION$ = HJ$
- IF LEN(HJ$) > 4 THEN _ ' IF MORE THAN FOUR CHARACTERS,
- IX = 22 ' RETURN
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HANDLE SET UP RETURN CODES FOR FUNCTION KEYS THAT *
- ' * WERE PRESSED ON THE LOCAL PC RUNNING CONFIG *
- ' *****************************************************************************
- '
- 22240 IX = ASC(RIGHT$(Y$,1))
- Y$ = "
- IF IX < 59 OR IX > 91 THEN _ ' IGNORE IF NOT F1 THROUGH F10 OR
- IX = 0: _ ' SHIFT-F1 THROUGH SHIFT-F8
- RETURN
- IF IX = 73 THEN _ ' IF PGUP THEN SET IX = 19
- IX = 19 : _
- RETURN
- IF IX = 79 THEN _ ' IF END THEN SET IX = 21
- IX = 21 : _
- RETURN
- IF IX = 81 THEN _ ' IF PGDN THEN SET IX = 20
- IX = 20 : _
- RETURN
- IF (IX-58) < 11 THEN _ ' IF F1 THROUGH F10 SET IX = 1
- IX = IX-58 : _ ' THROUGH 10 ACCORDINGLY.
- RETURN
- IF (IX-73) > 10 AND _ ' IF SHIFT-F1 THROUGH SHIFT-F8 THEN
- (IX-73) < 19 THEN _ ' SET IX = 11 THROUGH 18
- IX = IX - 73 : _ ' ACCORDINGLY.
- RETURN
- IX = 0
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO NOTIFY THE USER WHEN READING DATA *
- ' *****************************************************************************
- '
- 22340 LOCATE 22,1
- PRINT SPACE$(79);
- LOCATE 22,15
- PRINT SPC(64);
- LOCATE 22,15
- PRINT TIME$;" ";
- COLOR 0,7
- PRINT " Reading Data, Wait a sec !!! ";
- COLOR FG,BG,BORDER
- RETURN
- '
- ' *****************************************************************************
- ' * BEFORE EXITING, ASK USER IF HE WANTS TO WRITE OUT THE CHANGES OR QUIT *
- ' *****************************************************************************
- '
- 22350 GOSUB 50340
- XX$ = "Are you satisfied with all changes ? (Y/N) or <Q>uit "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 12190,59000,60360,22350
- 22380 LINE INPUT;HJ$
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 4 THEN _
- GOTO 22470
- GOSUB 50654
- IF HJ$ = "NO" THEN _
- AB = 1 : _
- RETURN
- IF HJ$ = "N" THEN _
- HJ$ = "NO" : _
- AB = 1 : _
- RETURN
- IF HJ$ = "YES" THEN _
- AB = 2 : _
- RETURN
- IF HJ$ = "Y" THEN _
- HJ$ = "YES" : _
- AB = 2 : _
- RETURN
- IF HJ$ = "QUIT" THEN _
- AB = 3 : _
- RETURN
- IF HJ$ = "Q" THEN _
- AB = 3 : _
- RETURN
- 22470 AB = 4
- RETURN
- '
- ' *****************************************************************************
- ' * ASK THE USER WHICH RBBS-PC.DEF FILE CONFIG IS TO WORK WITH *
- ' *****************************************************************************
- '
- 22480 GOSUB 50340
- XX$ = "To which copy of RBBS-PC will these options apply (1 to 36)?"
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 2 THEN _
- GOTO 22480
- IF VAL(HJ$) < 1 OR VAL(HJ$) > 36 THEN _
- GOTO 22480
- MID$(CONFIG.FILENAME$,5,1) = MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
- RETURN
- '
- ' *****************************************************************************
- ' * NOTIFY SYSOP OPTIONS THAT ARE UNAVAILABLE *
- ' *****************************************************************************
- '
- 22550 GOSUB 50340
- XX$ = "Option " + _
- OPTION$ + _
- " unavailable with CONFIG " + CONFIG.VERSION$ +"!"
- GOSUB 50345
- DELAY! = FNTI! + 5
- GOSUB 60440
- RETURN
- '
- ' *****************************************************************************
- ' * NOTIFY SYSOP OPTIONS THAT ARE UNAVAILABLE FOR PUBLIC CONFERENCES *
- ' *****************************************************************************
- '
- 22560 GOSUB 50340
- XX$ = "Option " + _
- OPTION$ + _
- " unavailable when maintaining a public conference!"
- GOSUB 50345
- DELAY! = FNTI! + 5
- GOSUB 60440
- RETURN
- '
- ' *****************************************************************************
- ' * REBUILD THE USER FILE *
- ' *****************************************************************************
- '
- 22570 IF F = 2 THEN _
- GOSUB 22560 : _
- RETURN
- D.FLAG = 0
- GOSUB 24110
- RETURN
- '
- ' *****************************************************************************
- ' * PACK THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 23160 B1 = MAXIMUM.NUMBER.OF.NODES
- B3! = HIGHEST.MESSAGE.RECORD
- PURGE = -1
- GOSUB 30610
- RETURN
- '
- ' *****************************************************************************
- ' * POINT TO THE NEXT MESSAGE HEADER IN THE MESSAGE FILE *
- ' *****************************************************************************
- '
- 23610 I = LOC(1) + VAL(MID$(MESSAGE.RECORD$,118,6)) - 1
- RETURN
- '
- ' *****************************************************************************
- ' * REPAIR THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 23620 RB = 1
- '
- ' *****************************************************************************
- ' * PRINT THE HEADER RECORDS IN THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 23630 SK = 0
- GOSUB 30040 ' <----Print message headers
- OPEN "R",1,MAIN.MESSAGE.FILE$
- FIELD 1,128 AS MESSAGE.RECORD$
- FOR I = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD-1
- GET 1,I
- IF VAL(MID$(MESSAGE.RECORD$,117,6)) > 0 AND _
- SK < VAL(MID$(MESSAGE.RECORD$,2,4)) THEN _
- SK = VAL(MID$(MESSAGE.RECORD$,2,4)) : _
- GOSUB 23610 ELSE _
- GOTO 23725
- I$ = "K"
- IF MID$(MESSAGE.RECORD$,116,1) = CHR$(225) THEN _
- I$ = "A
- IF LOC(1) > NEXT.MESSAGE.RECORD-1 THEN _
- GOTO 23730
- PRINT LEFT$(MESSAGE.RECORD$,5) + " " + _
- MID$(MESSAGE.RECORD$,76,25) + " " + _
- MID$(MESSAGE.RECORD$,101,15) + " " + _
- I$ + " " + _
- MID$(MESSAGE.RECORD$,117,6) + " " + _
- STR$(LOC(1)) + " " + _
- STR$(I)
- SK = VAL(MID$(MESSAGE.RECORD$,2,4))
- IF RB AND VAL(MID$(MESSAGE.RECORD$,2,4)) = CALLS.TODATE! THEN _
- GOTO 23730
- IF RB THEN _
- GOSUB 50580
- 23725 NEXT
- 23730 GET 1,1
- MID$(MESSAGE.RECORD$,1,8) = SPACE$(8)
- MID$(MESSAGE.RECORD$,1,8) = STR$(SK)
- PUT 1,1
- CLOSE 1
- DELAY! = FNTI! + 5
- GOSUB 60440
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO INITIALIZE THE HAYES 2400 MODEM'S FIRMWARE *
- ' *****************************************************************************
- '
- 23731 LOCATE 25,5
- PRINT "Setting Hayes 2400 firmware switches for RBBS-PC on " + COM.PORT$;
- DELAY! = FNTI! + 3
- GOSUB 60440
- '
- ' *****************************************************************************
- ' * *
- ' * WHEN INITIALIZING THE HAYES 2400 VOLITILE MEMORY, SET THE FOLLOWING: *
- ' * *
- ' * &C1 = Indicate carrier detect if user is on-line *
- ' * &D3 = Use these settings when DTR drops *
- ' * B1 = Use Bell 212A when 1200 Baud is detected *
- ' * E0 = Do not echo modem commands back to the PC *
- ' * V1 = Issue long form of results codes *
- ' * M0 = Disable the speaker *
- ' * *
- ' *****************************************************************************
- '
- 23732 A$ = USER.INITIALIZE.COMMAND$
- IF VAL(MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0=")+3,3)) = 255 THEN _
- A$ = A$ + "Q1" ' Don't send results to the PC
- 23734 OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3
- PRINT #3,USER.FIRMWARE.CLEAR.CMND$ 'Clear and initialize to factory settings
- DELAY! = FNTI! + 3
- GOSUB 60440
- PRINT #3,A$ + USER.FIRMWARE.WRITE.CMND$
- GOSUB 60440
- 23739 CLOSE #3
- LOCATE 25,5
- PRINT SPACE$(74);
- LOCATE 25,5
- PRINT "Modem's firmware set as specified in parameter 205 for "+M13$;
- IA!=FNTI!+3
- GOSUB 60440
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO RENUMBER THE MESSAGE FILE *
- ' *****************************************************************************
- '
- 23740 GOSUB 30040
- 23750 GOSUB 50340
- XX$ = "Renumber starting with OLD message # (<" + STR$(CALLS.TODATE! + 1) + ")"
- GOSUB 50345
- LINE INPUT;HJ$
- IF HJ$ = "" THEN _
- RETURN
- B1 = VAL(HJ$)
- IF B1 < 1 OR B1 > CALLS.TODATE! THEN _
- GOTO 23750
- RE = B1
- 23810 GOSUB 50340
- XX$ = "Renumber starting with NEW message # "
- GOSUB 50345
- LINE INPUT;HJ$
- IF HJ$ = "" THEN _
- RETURN
- B1 = VAL(HJ$)
- IF B1 < 1 OR B1 > 9999 THEN _
- GOTO 23810
- NE = B1-1
- OPEN "R",1,MAIN.MESSAGE.FILE$
- FIELD 1,128 AS MESSAGE.RECORD$
- GOSUB 50340
- FOR I = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD-1
- GET 1,I
- IF INSTR(MESSAGE.RECORD$,CHR$(225)) OR _
- INSTR(MESSAGE.RECORD$,CHR$(226)) THEN _
- GOSUB 24010 : _
- GOSUB 23610
- NEXT
- GET 1,1
- MID$(MESSAGE.RECORD$,1,8) = SPACE$(8) ' Update the checkpoint record with the
- MID$(MESSAGE.RECORD$,1,8) = STR$(NE) ' 1- 8 = number of last message on system
- PUT 1,1
- CLOSE 1
- DELAY! = FNTI! + 1
- GOSUB 60440
- RETURN
- 24010 LOCATE 24,15
- PRINT "Msg #" + MID$(MESSAGE.RECORD$,1,5);
- IF VAL(MID$(MESSAGE.RECORD$,2,4))<RE THEN _
- PRINT " read"; : _
- RETURN
- Y$ = MID$(MESSAGE.RECORD$,1,1)
- MID$(MESSAGE.RECORD$,1,5) = SPACE$(5)
- NE = NE + 1
- MID$(MESSAGE.RECORD$,1,5) = STR$(NE)
- MID$(MESSAGE.RECORD$,1,1) = Y$
- PRINT " renumbered as Msg #" + MID$(MESSAGE.RECORD$,1,5)
- PUT 1,I
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO PACK THE USERS FILE *
- ' *****************************************************************************
- '
- 24020 OPEN "R",1,MAIN.USER.FILE$,128
- FIELD 1, 31 AS USER.NAME$, _
- 15 AS PASSWORD$, _
- 2 AS SECURITY.LEVEL$, _
- 14 AS USER.OPTIONS$, _
- 24 AS CITY.STATE$, _
- 19 AS MACHINE.TYPE$, _
- 14 AS LAST.DATE.TIME.ON$, _
- 3 AS LIST.NEW.DATE$, _
- 2 AS USER.DOWNLOADS$, _
- 2 AS USER.UPLOADS$, _
- 2 AS ELASPED.TIME$
- FIELD 1, 128 AS USER.RECORD$
- RETURN
- '
- ' *****************************************************************************
- ' * SHARED ROUTINE TO SET UP USER PROCESSING *
- ' *****************************************************************************
- '
- 24025 IF LEN.HASH < 7 THEN NU = LEN.HASH ELSE NU = 7
- NEW.USER$ = LEFT$("NEWUSER",NU)
- EMPTY.USER$ = SPACE$(NU)
- DELETED.USER$ = LEFT$("deleted user",NU)
- COMP.USER$ = EMPTY.USER$
- RETURN
- '
- ' *****************************************************************************
- ' * SET FLAG TO "FALSE" ON ANSWERED REQUIRED QUESTIONNAIRE AS DEFAULT *
- ' *****************************************************************************
- '
- 24050 GOSUB 24020
- GOSUB 24025
- A! = HIGHEST.USER.RECORD
- XX$ = "Processing Record #"
- GOSUB 50345
- X = POS(0)+1
- FOR J=1 TO A!
- GET 1,J
- LOCATE 24,X
- PRINT J;
- 24051 HASH.VALUE$ = MID$(USER.RECORD$,START.HASH,LEN.HASH)
- LSET COMP.USER$ = HASH.VALUE$
- 24052 IF ASC(HASH.VALUE$) = 0 OR _
- COMP.USER$ = NEW.USER$ OR _
- COMP.USER$ = EMPTY.USER$ OR _
- COMP.USER$ = DELETED.USER$ THEN _
- GOTO 24055
- USER.OPTIONS = CVI(MID$(USER.OPTIONS$,9,2))
- USER.OPTIONS = USER.OPTIONS AND 255 'Zero out only flag 6
- MID$(USER.OPTIONS$,9,2) = MKI$(USER.OPTIONS)
- PUT 1,J
- 24055 NEXT
- CLOSE 1
- RETURN
- 24110 GOSUB 30040
- GOSUB 24020
- GOSUB 50350
- A$ = F$
- GOSUB 50095
- OPEN "R",2,A$,128
- FIELD 2, 31 AS USER.NAME.N$, _
- 15 AS PASSWORD.N$, _
- 2 AS SECURITY.LEVEL.N$, _
- 14 AS USER.OPTIONS.N$, _
- 24 AS CITY.STATE.N$, _
- 19 AS MACHINE.TYPE.N$, _
- 14 AS LAST.DATE.TIME.ON.N$, _
- 3 AS LIST.NEW.DATE.N$, _
- 2 AS USER.DOWN.LOADS.N$, _
- 2 AS USER.UPLOADS.N$, _
- 2 AS ELAPSED.TIME.N$
- FIELD 2, 128 AS USER.RECORD.N$
- CURRENT.MONTH = VAL(LEFT$(DATE$,2))
- GOSUB 50340
- A! = 0
- GOSUB 50840
- A! = HIGHEST.USER.RECORD
- CURRENT.USER.COUNT = 1
- GOSUB 24025
- 24112 FOR J = 1 TO A!
- GET 1
- 24114 HASH.VALUE$ = MID$(USER.RECORD$,START.HASH,LEN.HASH)
- LSET COMP.USER$ = HASH.VALUE$
- IF ASC(HASH.VALUE$) = 0 OR _
- COMP.USER$ = NEW.USER$ OR _
- COMP.USER$ = EMPTY.USER$ OR _
- COMP.USER$ = DELETED.USER$ THEN _
- A$ = "" : _
- GOTO 24430
- IF D.FLAG THEN _
- GOTO 24290
- SECURITY.LEVEL = CVI(SECURITY.LEVEL$)
- IF SECURITY.LEVEL => SEC.LVL.EXEMPT.FRM.PURGING THEN _
- GOTO 24290 ' copy users exempt from purges
- IF SECURITY.LEVEL <= MINIMUM.LOGON.SECURITY THEN _
- GOTO 24290 ' copy "locked-out" users
- 24116 MONTH.OF.LAST.LOGON = VAL(LEFT$(LAST.DATE.TIME.ON$,2))
- MONTHS.SINCE.LAST.LOGON = CURRENT.MONTH-MONTH.OF.LAST.LOGON
- IF MONTHS.SINCE.LAST.LOGON < 0 THEN _
- MONTHS.SINCE.LAST.LOGON = MONTHS.SINCE.LAST.LOGON + 12
- IF MONTHS.SINCE.LAST.LOGON > ACT.MNTHS.B4.DELETING THEN _
- A$ = "(Last on " + LAST.DATE.TIME.ON$ + ")" : _ '
- GOTO 24430 'Purge inactive users
- 24290 PRINT STR$(LOC(1)) + ": " + HASH.VALUE$ + " copied .... ";
- GOSUB 50720
- GOTO 24450
- 24430 PRINT STR$(LOC(1)) + ": " + HASH.VALUE$ + " purged... " + A$
- 24450 NEXT
- CLOSE 1,2
- MAX.USR.FILE.SIZE.FRM.DEF = HIGHEST.USER.RECORD
- GOSUB 30450
- 24730 XX$ = "Delete the old " + MAIN.USER.FILE$ + " file? (YES or NO)?"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 24750,24770,24730,24730
- 24750 A$ = MAIN.USER.FILE$
- GOSUB 50096
- NAME MAIN.USER.FILE$ AS A$
- GOTO 24780
- 24770 KILL MAIN.USER.FILE$
- 24780 GOSUB 50350
- A$ = F$
- GOSUB 50095
- NAME A$ AS MAIN.USER.FILE$
- RETURN
- ' *****************************************************************************
- ' * CHECK VALIDITY OF FMS DIRECTORY *
- ' *****************************************************************************
- 24790 CALL CHKFMSDIR (DIRECTORY.PATH$+FMS.DIRECTORY$+"."+DIRECTORY.EXTENTION$,MAX.DESC.LEN + 36,DIR.CATEGORY.FILE$)
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO DISPLAY THE PAGE HEADER FOR CONFIG'S DISPLAYS *
- ' *****************************************************************************
- '
- 24800 CLS
- I! = FRE(C$)
- COLOR 0,7,0
- LOCATE 1,10
- PRINT "RBBS-PC CPC15.1 Default Configuration " + CONFIG.VERSION$;
- IF F THEN _
- GOSUB 24970
- COLOR FG,BG,BORDER
- PRINT " Page" + STR$(DISPLAYED.PAGE.NUMBER) + " of" + STR$(MAXIMUM.DISPLAYABLE.PAGES)
- RETURN
- 24890 A$ = "Enter parameter number to change, END to update, PgUp/PgDn to scroll.
- 24900 LOCATE 24,1
- PRINT A$;
- PRINT STRING$((79-LEN(A$)),32);
- LOCATE 24,LEN(A$) + 1
- COLOR FG,BG,BORDER
- HJ$ = "
- I! = FRE(C$)
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO DISPLAY CONFERENCE MAINTENANCE MODE IN CONFIG'S DISPLAYS *
- ' *****************************************************************************
- '
- 24970 LOCATE 2,1
- PRINT SPACE$(10)
- LOCATE 2,10
- A$ = "Private"
- IF F = 2 THEN _
- A$ = "Public"
- COLOR 31,0,0
- PRINT "(" + A$ + " Conference Maintenance Mode for " + _
- MID$(MAIN.MESSAGE.FILE$,1,INSTR(MAIN.MESSAGE.FILE$,"M.DEF")-1) + _
- ")";
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY ACTIVITY WHEN PACKING/PURGING FILES *
- ' *****************************************************************************
- '
- 25020 XX$ = "In file " + MAIN.USER.FILE$ + " " + A$ + " record"
- GOSUB 50345
- X = POS(0)+1
- RETURN
- 25030 IF PURGE THEN _
- RETURN
- XX$ = A$ + " file " + MAIN.MESSAGE.FILE$ + " record"
- GOSUB 50345
- X = 5 + LEN(XX$)
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO ENTER/EXIT/CHANGE CONFERENCE MAINTENANCE MODE *
- ' *****************************************************************************
- '
- 25040 GOSUB 50340
- REFRESH = 0
- IF F = 0 THEN _
- GOTO 25050
- XX$ = "End conference maintenance? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25050,25044,25142,25142
- 25044 MAIN.MESSAGE.FILE$ = MAINMSG$
- MAIN.USER.FILE$ = MAINUSR$
- REFRESH = 1
- RETURN
- 25050 XX$ = "Enter the name of the conference (seven characters or less) "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) < 1 OR LEN(HJ$) > 7 THEN _
- GOTO 25040
- GOSUB 50654
- CP$ = HJ$
- 25080 GOSUB 50340
- 25090 XX$ = "Specify drive (A->" + M$ + ") containing this conference's files. "
- GOSUB 50345
- LINE INPUT;HJ$
- IF LEN(HJ$) <> 1 THEN _
- GOTO 25080
- GOSUB 50654
- IF HJ$ < "A" OR HJ$ > M$ THEN _
- GOTO 25090
- CP$ = HJ$ + ":" + CP$
- MAIN.MESSAGE.FILE$ = CP$ + "M.DEF
- 25141 GOSUB 50340
- 25142 XX$ = "Is this a private conference? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25144,25160,25141,25141
- 25144 F = 2
- GOTO 25170
- 25160 F = 1
- UG = 0
- MAIN.USER.FILE$ = CP$ + "U.DEF"
- 25170 REFRESH = 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO DISPLAY SUBSYSTEM COMMANDS AND THEIR SECURITY LEVELS *
- ' *****************************************************************************
- '
- 25180 CLS
- I! = FRE(C$)
- COLOR 0,7,0
- LOCATE 1,23
- PRINT "RBBS-PC CPC15.1 Default Configuration";
- COLOR FG,BG,BORDER
- LOCATE 2,5
- PRINT "The RBBS-PC " + CO$ + " Commands are as follows:
- LOCATE 3,10
- XX$ = "Command Security"
- IF IPAGE = 2 THEN _
- XX$ = "Description Command"
- PRINT XX$
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO ASK FOR FIRST CHARACTER OF A COMMAND *
- ' *****************************************************************************
- '
- 25210 XX$ = "Enter first character of command (CR to end)"
- GOSUB 50345
- LINE INPUT;X$
- RETURN
- '
- ' *****************************************************************************
- ' * ESTABLISH IF THE SYSOP WANTS TO USE DOS SUB-DIRECTORIES *
- ' *****************************************************************************
- '
- 25380 XX$ = "Will you be using DOS sub-directories? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25400,25410,25380,25380
- 25400 WILL.SUBDIRS.B.USED$ = "NO"
- UPLOAD.TO.SUBDIR$ = WILL.SUBDIRS.B.USED$
- DOWNLOAD.TO.SUBDIR$ = WILL.SUBDIRS.B.USED$
- RETURN
- 25410 WILL.SUBDIRS.B.USED$ = "YES"
- RETURN
- '
- ' *****************************************************************************
- ' * SET UP FOR UPLOADING TO A DOS SUB-DIRECTORY? *
- ' *****************************************************************************
- '
- 25420 XX$ = "Are uploads to a DOS sub-directory? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25440,25450,25420,25420
- 25440 UPLOAD.TO.SUBDIR$ = "NO"
- RETURN
- 25450 UPLOAD.TO.SUBDIR$ = "YES"
- RETURN
- '
- ' *****************************************************************************
- ' * SHOULD RBBS-PC SET UP TO HAVE DOWNLOADS COME FROM DOS SUB-DIRECTORIES *
- ' *****************************************************************************
- '
- 25460 XX$ = "Are downloads from DOS sub-directories? (YES or NO) "
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25480,25490,25460,25460
- 25480 DOWNLOAD.TO.SUBDIR$ = "NO"
- RETURN
- 25490 DOWNLOAD.TO.SUBDIR$ = "YES"
- RETURN
- '
- ' *****************************************************************************
- ' * HANDLE SUB-DIRECTORY INPUTS (LIST, CHANGE, ADD, DELETE) AND PUT IN .DEF *
- ' *****************************************************************************
- '
- 25495 IF UPLOAD.TO.SUBDIR$ = "NO" THEN _
- GOTO 25497
- GOSUB 31060
- A$ = "upload"
- PRINT "Change " + A$ +" DOS sub-directory? (YES or NO) ";
- GOSUB 22380
- ON AB GOTO 25497,25500,25495,25495
- 25497 IF DOWNLOAD.TO.SUBDIR$ = "NO" THEN _
- RETURN
- GOSUB 31060
- A$ = "download"
- PRINT "Modify " + A$ + _
- " DOS sub-directories? (YES or NO) ";
- GOSUB 22380
- ON AB GOTO 25498,25505,25497,25497
- 25498 RETURN
- 25500 IF UPLOAD.SUBDIR$ = "" THEN _
- GOTO 25502
- 25501 LOCATE 23,5
- PRINT SPC(74)
- LOCATE 23,5
- PRINT "Current " + A$" DOS sub-directory name is " + UPLOAD.SUBDIR$;
- 25502 GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- GOTO 25505
- IF DRIVE.FOR.UPLOADS$ = MID$(X$,1,1) THEN _
- SWAP UPLOAD.SUBDIR$,X$ : _
- IF X$ = "" THEN _
- GOTO 25501 _
- ELSE 25505
- GOTO 25502
- 25505 IF A$="upload" THEN _
- GOTO 25497
- IF DOWNLOAD.TO.SUBDIR$ = "NO" THEN _
- RETURN
- LOCATE 23,5
- PRINT SPC(74)
- LOCATE 23,5
- PRINT STR$(DNLD.SUB) + " of 99 download subdirectories designated.";
- 25510 GOSUB 31060
- PRINT "L>ist, C>hange, A>dd, D>elete " + A$" DOS sub-directories? (CR ends) ";
- LINE INPUT;HJ$:
- GOSUB 50654
- IF LEN(HJ$) < 1 GOTO 25498
- IF LEN(HJ$) <> 1 GOTO 25505
- FF = INSTR("LCAD",HJ$)
- IF FF = 0 THEN _
- GOTO 25510
- IF DNLD.SUB = 0 AND FF <> 3 THEN _
- GOTO 25510
- ON FF GOSUB 25610,25670,25730,25670
- GOTO 25505
- 25610 LAST = (DNLD.SUB/16) + 1
- INCR = 1
- FOR IX = 1 TO LAST
- GOSUB 24800
- LOCATE 4,1
- PRINT "DOS sub-directories from which downloads are done:";
- INDEX = 4
- FOR I = 1 TO 16
- LOCATE INDEX + I,1
- PRINT DNLD$(INCR);
- INCR = INCR + 1
- IF INCR > DNLD.SUB GOTO 25668
- NEXT
- 25636 XX$ = "More (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 25668,25644,25636,25636
- 25644 NEXT
- 25668 RETURN
- 25670 GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- RETURN
- GOSUB 26030
- A$ = " not found!"
- IF X$ = "" THEN _
- GOTO 25682
- FOR I = 1 TO DNLD.SUB
- IF X$ = DNLD$(I) THEN _
- GOTO 25698
- NEXT
- 25682 GOSUB 31060
- PRINT X$ + A$;
- A$ = "download"
- DELAY! = FNTI! + 5
- GOSUB 60440
- RETURN
- 25698 IF FF = 4 THEN _
- FOR X = I TO DNLD.SUB : _
- DNLD$(X) = DNLD$(X + 1) : _
- NEXT : _
- A$ = " deleted!" : _
- DNLD.SUB = DNLD.SUB-1 : _
- GOTO 25682
- IF FF = 2 THEN _
- A$ = "download" : _
- NEXT.MESSAGE.RECORD = I : _
- GOSUB 25850 : _
- GOSUB 26030 : _
- SWAP DNLD$(NEXT.MESSAGE.RECORD),X$ : _
- A$ = " changed!" : _
- GOTO 25682
- 25730 X$ = ""
- GOSUB 25850
- IF LEN(HJ$) < 1 THEN _
- RETURN
- FOR I = 1 TO LEN(DRIVES.FOR.DOWNLOADS$)
- IF MID$(DRIVES.FOR.DOWNLOADS$,I,1) = LEFT$(X$,1) THEN _
- GOTO 25735
- NEXT
- GOSUB 60380
- GOSUB 31060
- PRINT X$ + " is not on a drive eligible for downloading.";
- DELAY! = FNTI! + 5
- GOSUB 60440
- GOTO 25730
- 25735 IF X$ = "" THEN _
- GOTO 25498
- DNLD.SUB = DNLD.SUB + 1
- DNLD$(DNLD.SUB) = X$
- RETURN
- '
- ' *****************************************************************************
- ' * HANDLE SUB-DIRECTORY NAMES AND CHECK FOR THEIR VALIDITY *
- ' *****************************************************************************
- '
- 25850 GOSUB 31060
- PRINT "Enter " + A$" DOS sub-directory name (CR to end). ";
- LINE INPUT;HJ$
- GOSUB 50654
- IF LEN(HJ$) < 1 THEN _
- RETURN
- IF LEN(HJ$) = 2 AND INSTR(HJ$,":") = 2 THEN _
- X$ = HJ$ : _
- RETURN
- IF INSTR(HJ$,":\") <> 2 THEN _
- GOTO 25850
- X$ = HJ$
- FOR I = 4 TO LEN(X$)
- Y = INSTR(I,X$,"\")
- IF Y = 0 THEN _
- L1 = LEN(X$)-I + 1 : _
- GOTO 25876
- IF Y<>0 THEN _
- L1 = Y-I + 1 : _
- GOTO 25876
- NEXT
- 25876 HJ$ = MID$(X$,I,L1)
- IF LEN(HJ$) > 12 THEN _
- GOTO 25850
- L1 = INSTR(HJ$,".")
- IF L1 = 0 THEN _
- IF LEN(HJ$) < 9 THEN _
- GOTO 25920 _
- ELSE GOTO 25850
- IF L1 > 9 THEN _
- GOTO 25850
- IF L1 < 2 THEN _
- GOTO 25850
- IF LEN(HJ$)-L1 > 3 THEN _
- GOTO 25850
- I = 0
- GOSUB 25920
- IF I = 0 THEN _
- RETURN
- GOTO 25850
- 25920 FOR J = 1 TO LEN(HJ$)
- X = ASC(MID$(HJ$,J,1))
- IF (X > 63 AND X < 91) THEN _
- GOTO 26020
- IF (X > 47 AND X < 58) THEN _
- GOTO 26020
- IF (X = 33) THEN _
- GOTO 26020
- IF (X > 34 AND X < 42) THEN _
- GOTO 26020
- IF (X > 43 AND X < 47) THEN _
- GOTO 26020
- IF (X > 96 AND X < 124) THEN _
- GOTO 26020
- IF (X = 125) THEN _
- GOTO 26020
- I = 1
- RETURN
- 26020 NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * VERIFY THAT THE DISK DRIVE IS ONE ELIGIBLE FOR DOWNLOADING *
- ' *****************************************************************************
- '
- 26030 FOR I = 1 TO LEN(DRIVES.FOR.DOWNLOADS$)
- IF MID$(DRIVES.FOR.DOWNLOADS$,I,1) = MID$(X$,1,1) THEN _
- RETURN
- NEXT
- X$ = ""
- RETURN
- '
- ' *****************************************************************************
- ' * ALLOW THE SYSOP TO SELECT THE TIME OF DAY THAT RBBS-PC IS TO DROP TO DOS *
- ' *****************************************************************************
- '
- 26040 XX$ = "Is RBBS-PC to drop to DOS at a specific time each day? (YES or NO)"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 26050,26060,26050,26060
- 26050 HJ$ = "" ' CPC15-1B
- GOTO 26065 ' CPC15-1B
- 26060 XX$ = "Time of day (HHMM) to drop to DOS--0000 to 2359? (ENTER = No) "
- GOSUB 50345
- LINE INPUT;HJ$
- 26065 IF HJ$ = "" THEN _ ' CPC15-1B
- TIME.TO.DROP.TO.DOS = -1 : _
- RETURN
- IF LEN(HJ$) <> 4 THEN _
- GOTO 26060
- IF FIX(VAL(MID$(HJ$,1,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,1,2))) > 24 OR _
- FIX(VAL(MID$(HJ$,3,2))) < 0 OR _
- FIX(VAL(MID$(HJ$,3,2))) > 59 THEN _
- GOTO 26040
- TIME.TO.DROP.TO.DOS = VAL(HJ$)
- RETURN
- '
- ' *****************************************************************************
- ' * IDENTIFY THE NET WORK MAIL TYPE THAT RBBS-PC IS RUNNING IN *
- ' *****************************************************************************
- '
- 26070 CLS ' CPC15-1B
- LOCATE 3,5 ' CPC15-1B
- PRINT "RBBS-PC supports the following store-and-forward mail systems:" ' CPC15-1B
- LOCATE 5,20 ' CPC15-1B
- PRINT "Environment" ' CPC15-1B
- LOCATE 7,10 ' CPC15-1B
- PRINT "0. None" ' CPC15-1B
- LOCATE 9,10 ' CPC15-1B
- PRINT "1. SeaDog" ' CPC15-1B
- LOCATE 11,10 ' CPC15-1B
- PRINT "2. X.400 (to be supported in the future)" ' CPC15-1B
- LOCATE 13,10 ' CPC15-1B
- PRINT "3. GTE's PC-Pursuit (to be supported in the future)" ' CPC15-1B
- LOCATE 15,10 ' CPC15-1B
- PRINT "4. G.E.'s GENIE's QuikComm (to be supported in the future)" ' CPC15-1B
- 26080 GOSUB 50340 ' CPC15-1B
- XX$ = "Select network mail type (0 to 4, CR to end)" ' CPC15-1B
- GOSUB 50345 ' CPC15-1B
- LINE INPUT;X$ ' CPC15-1B
- IF X$ = "" THEN _ ' CPC15-1B
- NET.MAIL$ = "NONE" : _ ' CPC15-1B
- RETURN ' CPC15-1B
- IF VAL(X$) < 0 OR VAL(X$) > 1 THEN _ ' CPC15-1B
- GOTO 26070 ' CPC15-1B
- IF VAL(X$) = 0 THEN _ ' CPC15-1B
- NET.MAIL$ = "NONE" ' CPC15-1B
- IF VAL(X$) = 1 THEN _ ' CPC15-1B
- NET.MAIL$ = "SeaDog" ' CPC15-1B
- RETURN ' CPC15-1B
- '
- ' *****************************************************************************
- ' * CHECK TO SEE IF A FILE EXIST (COMMON SUBROUTINE) *
- ' *****************************************************************************
- '
- 30000 OKAY = 0 ' <---- check to see if file exists
- 30010 NAME FILE$ AS FILE$ ' OKAY = 0 means file not found
- 30020 OKAY = -1 ' OKAY = 1 means file exists
- 30030 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO READ THE MESSAGES FILE'S CHECKPOINT RECORD *
- ' *****************************************************************************
- '
- 30040 OPEN "R",2,MAIN.MESSAGE.FILE$,128 ' <---- read MESSAGES checkpoint record
- FIELD 2,128 AS RR$
- GET 2,1
- CALLS.TODATE! = VAL(MID$(RR$,1,8)) ' 1- 8 = number of last message on system
- FIRST.USER.RECORD = VAL(MID$(RR$,52,5)) ' 52- 56 = first rec. of user file
- CURRENT.USER.COUNT = VAL(MID$(RR$,57,5)) ' 57- 61 = next avail. user record
- HIGHEST.USER.RECORD = VAL(MID$(RR$,62,5)) ' 62- 66 = last rec. of user file
- FIRST.MESSAGE.RECORD = VAL(MID$(RR$,68,7)) ' 68- 74 = first rec. of msgs file
- NEXT.MESSAGE.RECORD = VAL(MID$(RR$,75,7)) ' 75- 81 = next avail. msgs record
- HIGHEST.MESSAGE.RECORD = VAL(MID$(RR$,82,7)) ' 82- 88 = last rec. of msgs file
- MAXIMUM.NUMBER.OF.MSGS = VAL(MID$(RR$,89,7)) ' 89- 95 = maximum number of messages
- MAXIMUM.NUMBER.OF.NODES = VAL(MID$(RR$,127,2)) '127-128 = maximum number of "nodes"
- CLOSE 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO GET THE LENGTH OF A FILE *
- ' *****************************************************************************
- '
- 30180 OPEN "R",2,FILE$,128 ' <---- get length of file
- FIELD 2,128 AS RR$
- UG = LOF(2)/128
- CLOSE 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO CREATE A NEW MESSAGES FILE *
- ' *****************************************************************************
- '
- 30230 OPEN "R",2,MAIN.MESSAGE.FILE$ ' <---- create new MESSAGES file
- FIELD 2,128 AS RR$
- A$ = "Creating preformatted"
- LSET RR$ = " 1" + SPACE$(124) + STR$(MAXIMUM.NUMBER.OF.NODES)
- PUT 2,1 ' write out blank checkpoint record
- FOR J = 2 TO FIRST.MESSAGE.RECORD-1
- GOSUB 31050
- PUT 2 ' write out "door" records of new file
- GOSUB 25030
- NEXT
- FOR J = FIRST.MESSAGE.RECORD TO HIGHEST.MESSAGE.RECORD
- LSET RR$ = SPACE$(128)
- PUT 2 ' write out messages records of new file
- GOSUB 25030
- NEXT
- HIGHEST.MESSAGE.RECORD = LOC(2) ' point to last available message record
- CLOSE 2
- GOSUB 30450
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO UPDATE MESSAGES FILE'S CHECKPOINT RECORD *
- ' *****************************************************************************
- '
- 30450 CLOSE 2
- OPEN "R",2,MAIN.MESSAGE.FILE$ ' <---- update MESSAGES checkpoint record
- FIELD 2,128 AS RR$
- GET 2,1
- MID$(RR$,52,46) = SPACE$(46) 'reset all counters before filling
- MID$(RR$,52,5) = STR$(FIRST.USER.RECORD) ' 52- 56 = first rec. of msgs file
- MID$(RR$,57,5) = STR$(CURRENT.USER.COUNT) ' 57- 61 = next avail. user record
- MID$(RR$,62,5) = STR$(HIGHEST.USER.RECORD) ' 62- 66 = last rec. of user file
- MID$(RR$,68,7) = STR$(FIRST.MESSAGE.RECORD) ' 68- 74 = first rec. of msgs file
- MID$(RR$,75,7) = STR$(NEXT.MESSAGE.RECORD) ' 75- 81 = next avail. msgs record
- MID$(RR$,82,7) = STR$(HIGHEST.MESSAGE.RECORD) ' 82- 88 = last rec. of msgs file
- MID$(RR$,89,7) = STR$(MAXIMUM.NUMBER.OF.MSGS) ' 89- 95 = maximum number of messages
- HJ$ = STR$(MAXIMUM.NUMBER.OF.NODES)
- IF MAXIMUM.NUMBER.OF.NODES>9 THEN _
- HJ$=MID$(STR$(MAXIMUM.NUMBER.OF.NODES),2,2)
- MID$(RR$,127,2) = HJ$ '127-128 = maximum number of "nodes"
- PUT 2,1
- CLOSE 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO EXPAND/CONTRACT A MESSAGES FILE *
- ' *****************************************************************************
- '
- 30610 CLOSE 1
- CLOSE 2
- OPEN "R",1,MAIN.MESSAGE.FILE$,128 ' <---- adjust size of the MESSAGES file
- FIELD 1,128 AS MESSAGE.RECORD$ ' Open old MESSAGES file
- A$ = MAIN.MESSAGE.FILE$
- GOSUB 50095
- OPEN "R",2,A$,128 ' Open new MESSAGES file
- FIELD 2,128 AS RR$
- A$="Copying"
- OE = B1
- IF MAXIMUM.NUMBER.OF.NODES<=B1 THEN _
- OE = MAXIMUM.NUMBER.OF.NODES
- GOSUB 50340
- FOR J=1 TO OE + 1
- GET 1,J
- LSET RR$ = MESSAGE.RECORD$ ' write out existing checkpoint and
- PUT 2 ' existing "door" records
- GOSUB 25030
- NEXT
- IF B1 <= MAXIMUM.NUMBER.OF.NODES THEN _
- GOTO 30780
- FOR J = OE + 1 TO B1
- GOSUB 31050
- PUT 2 ' write out expansion "door" records
- GOSUB 25030
- NEXT
- 30780 MAXIMUM.NUMBER.OF.NODES=B1 ' set value for maximum number of nodes
- FOR J = FIRST.MESSAGE.RECORD TO NEXT.MESSAGE.RECORD-1
- 30830 GET 1,J
- IF PURGE <> -1 THEN _
- GOTO 30840
- IF MID$(MESSAGE.RECORD$,116,1)=CHR$(225) THEN _
- PRINT "Msg #" + LEFT$(MESSAGE.RECORD$,5) + " copied..." : _
- GOTO 30840
- IF MID$(MESSAGE.RECORD$,116,1) = CHR$(226) THEN _
- PRINT "Msg #" + LEFT$(MESSAGE.RECORD$,5) + " purged..." : _
- J=LOC(1) + VAL(MID$(MESSAGE.RECORD$,117,6)) : _
- GOTO 30830
- 30840 LSET RR$ = MESSAGE.RECORD$
- PUT 2 ' write out existing message records
- GOSUB 25030
- NEXT
- B1=LOC(2) + 1 ' get new file's next message record
- CLOSE 1
- IF B3! < LOC(2) + 1 THEN _
- GOTO 30960
- IF PURGE THEN _
- NEXT.MESSAGE.RECORD = LOC(2) + 1 : _
- PURGE = 0 : _
- A$ = "Preformatting"
- GOSUB 25030
- FOR J! = NEXT.MESSAGE.RECORD TO B3!
- LSET RR$ = SPACE$(128)
- PUT 2 ' write out expansion message records
- LOCATE 24,X
- PRINT LOC(2);
- NEXT
- 30960 FIRST.MESSAGE.RECORD = 1 + MAXIMUM.NUMBER.OF.NODES + 1
- NEXT.MESSAGE.RECORD = B1
- HIGHEST.MESSAGE.RECORD = LOC(2)
- CLOSE 2
- 30980 XX$ = "Delete the old " + MAIN.MESSAGE.FILE$ + " file? (YES or NO)?"
- GOSUB 50345
- GOSUB 22380
- ON AB GOTO 31000,31020,30980,30980
- 31000 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50096
- NAME MAIN.MESSAGE.FILE$ AS A$
- GOTO 31030
- 31020 KILL MAIN.MESSAGE.FILE$
- 31030 A$ = MAIN.MESSAGE.FILE$
- GOSUB 50095
- NAME A$ AS MAIN.MESSAGE.FILE$
- GOSUB 30450
- 31035 RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO CREATE A BLANK "NODE" RECORD IN THE MESSAGE FILE *
- ' *****************************************************************************
- '
- 31050 LSET RR$ = SPACE$(31) + "-1 0 0 0 0 0 0 0 0 0 0I"
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO POSITION CURSOR ON LINE 24, COLUMN 5 *
- ' *****************************************************************************
- '
- 31060 GOSUB 50340
- LOCATE 24,5
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY A LINE ON THE USER'S TERMINAL *
- ' *****************************************************************************
- '
- 31070 IROW = IROW + 1
- LOCATE IROW,ICOL
- PRINT XYZ$;
- RETURN
- '
- ' *****************************************************************************
- ' * ROUTINE TO CREATE A NEW USERS FILE *
- ' *****************************************************************************
- '
- 50000 OPEN "R",2,MAIN.USER.FILE$ ' <---- create a new USERS file
- FIELD 2,128 AS U$
- GOSUB 50340
- A$ = "creating preformatted"
- GOSUB 25020
- FOR J = FIRST.USER.RECORD TO HIGHEST.USER.RECORD
- LSET U$ = SPACE$(128)
- PUT 2
- LOCATE 24,X
- PRINT J;
- NEXT
- CLOSE 2
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO MAKE SURE A WORK FILE HAS ".BAK" AS AN EXTENSION *
- ' *****************************************************************************
- '
- 50095 IF INSTR(A$,".") THEN _
- A$ = MID$(A$,1,INSTR(A$,".")-1) + ".BAK" : _
- RETURN _
- ELSE A$ = A$ + ".BAK" : _
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO MAKE SURE SAVED FILES HAVES ".OLD" AS AN EXTENSION *
- ' *****************************************************************************
- '
- 50096 IF INSTR(A$,".") THEN _
- A$ = MID$(A$,1,INSTR(A$,".")-1) + ".OLD" : _
- RETURN _
- ELSE A$ = A$ + ".OLD" : _
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO CREATE A NEW MESSAGES FILE *
- ' *****************************************************************************
- '
- OPEN "R",2,MAIN.MESSAGE.FILE$
- FIELD 2,128 AS RR$
- IF F = 1 THEN _
- CALLS.TODATE! = 1
- GOSUB 50340
- LSET RR$ = " 1 " + SPACE$(118) + STR$(MAXIMUM.NUMBER.OF.NODES)
- PUT 2,1 ' write out first record of new file
- FOR J! = 2 TO MAXIMUM.NUMBER.OF.NODES + 1
- GOSUB 31050
- PUT 2 ' write out "door" records of new file
- GOSUB 25030
- NEXT
- FIRST.MESSAGE.RECORD = LOC(2) + 1 ' point to first message record
- NEXT.MESSAGE.RECORD = FIRST.MESSAGE.RECORD ' point to next available message record
- IF MAXIMUM.NUMBER.OF.NODES + 1 = MAX.MSG.FILE.SIZE.FRM.DEF! THEN _
- GOTO 50270
- FOR J! = MAXIMUM.NUMBER.OF.NODES + 2 TO MAX.MSG.FILE.SIZE.FRM.DEF!
- LSET RR$ = SPACE$(128)
- PUT 2 ' write out messages records of new file
- GOSUB 25030
- NEXT
- 50270 HIGHEST.MESSAGE.RECORD = LOC(2) ' point to last available message record
- GOSUB 30040
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO KEEP STRING SPACE CLEAN AND CLEAR LINE 24 *
- ' *****************************************************************************
- '
- 50340 I! = FRE(C$)
- LOCATE 24,1
- PRINT STRING$(79,32);
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO DISPLAY A MESSAGE ON LINE 24 *
- ' *****************************************************************************
- '
- 50345 GOSUB 50340
- 50346 LOCATE 24,5
- PRINT XX$;
- RETURN
- 50350 F$ = MAIN.USER.FILE$
- IF INSTR(MAIN.USER.FILE$,".") THEN _
- F$ = MID$(MAIN.USER.FILE$,1,INSTR(MAIN.USER.FILE$,".")-1)
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO GET LENGTH OF THE USERS FILE *
- ' *****************************************************************************
- '
- 50480 MAX.USR.FILE.SIZE.FRM.DEF = 8
- 50490 NAME MAIN.USER.FILE$ AS MAIN.USER.FILE$
- 50500 OPEN "R",1,MAIN.USER.FILE$
- IF MAX.USR.FILE.SIZE.FRM.DEF < LOF(1)/128 THEN _
- MAX.USR.FILE.SIZE.FRM.DEF = LOF(1)/128
- UG = LOF(1)/128
- CLOSE 1
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO GET LENGTH OF THE MESSAGES FILE *
- ' *****************************************************************************
- '
- 50530 MAX.MSG.FILE.SIZE.FRM.DEF! = (5*MAX.ALLOWED.MSGS.FRM.DEF) + 1 + MAXIMUM.NUMBER.OF.NODES
- 50540 NAME MAIN.MESSAGE.FILE$ AS MAIN.MESSAGE.FILE$
- 50550 OPEN "R",1,MAIN.MESSAGE.FILE$
- IF MAX.MSG.FILE.SIZE.FRM.DEF!<LOF(1)/128 THEN _
- MAX.MSG.FILE.SIZE.FRM.DEF! = LOF(1)/128
- CLOSE 1
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO REPAIR THE MESSAGE FILE AND GUARANTEE IT'S CHAINS *
- ' *****************************************************************************
- '
- 50580 OLD = LOC(1)
- GET 1,I + 1
- IF (MID$(MESSAGE.RECORD$,116,1) = CHR$(225) _
- OR MID$(MESSAGE.RECORD$,116,1) = CHR$(226)) _
- AND (MID$(MESSAGE.RECORD$,61,1) = ":" _
- AND MID$(MESSAGE.RECORD$,64,1) = ":" _
- AND MID$(MESSAGE.RECORD$,70,1) = "-" _
- AND MID$(MESSAGE.RECORD$,73,1) = "-") THEN _
- RETURN
- PRINT "Message chain broken at record number " + STR$(OLD)
- PRINT "Message chain repair in progress!
- FOR IQ = OLD + 1 TO NEXT.MESSAGE.RECORD-1
- GET 1,IQ
- IF (MID$(MESSAGE.RECORD$,116,1) = CHR$(225) _
- OR MID$(MESSAGE.RECORD$,116,1) = CHR$(226)) _
- AND (MID$(MESSAGE.RECORD$,61,1) = ":" _
- AND MID$(MESSAGE.RECORD$,64,1) = ":" _
- AND MID$(MESSAGE.RECORD$,70,1) = "-" _
- AND MID$(MESSAGE.RECORD$,73,1) = "-") THEN _
- GOTO 50660
- NEXT
- GOTO 23730
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO CONVERT FROM LOWER TO UPPER CASE *
- ' *****************************************************************************
- '
- 50654 ' Convert Lower Case to Upper Case -------
- FOR Z = 1 TO LEN(HJ$)
- MID$(HJ$,Z,1) = CHR$(ASC(MID$(HJ$,Z,1)) + 32*(ASC(MID$(HJ$,Z,1))>96))
- NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO SKIP TO THE NEXT GOOD MESSAGE HEADER IF CHAIN BORKEN *
- ' *****************************************************************************
- '
- 50660 GET 1,OLD
- MID$(MESSAGE.RECORD$,117,6) = STR$(IQ-OLD)
- PUT 1,OLD
- PRINT "Message chain repaired.
- I = IQ
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO HASH A USER'S NAME TO FIND THE CORRECT USER RECORD # *
- ' *****************************************************************************
- '
- 50720 JX = LEN.HASH
- WHILE MID$(HASH.VALUE$,JX,1) = " "
- JX = JX-1
- WEND
- X$ = MID$(HASH.VALUE$,1,JX)
- UIX# = FNHSH(X$)
- Q = FNHSH2(X$)
- NSR = 1
- RO = CSRLIN
- CO = POS(0)
- 50722 GET 2,UIX#
- HASH.VALUE.N$ = MID$(USER.RECORD.N$,START.HASH,LEN.HASH)
- IF MID$(HASH.VALUE.N$,1,NU) = EMPTY.USER$ THEN _
- GOTO 50730
- UIX# = UIX# + Q
- IF UIX# > MAX.USR.FILE.SIZE.FRM.DEF THEN _
- UIX# = UIX# - MAX.USR.FILE.SIZE.FRM.DEF
- NSR = NSR + 1
- LOCATE RO,CO
- PRINT "searching";UIX#;
- GOTO 50722
- 50730 LSET USER.RECORD.N$ = USER.RECORD$
- PUT 2,UIX#
- CURRENT.USER.COUNT = CURRENT.USER.COUNT + 1
- LOCATE RO,CO
- PRINT "to pos#";UIX#;" /";NSR;" srch(s)"
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO WRITE OUT BLANK USER RECORDS TO THE USERS FILE *
- ' *****************************************************************************
- '
- 50840 TEMPLATE$ = SPACE$(46) + MKI$(-32000)
- GOSUB 25020
- FOR J = A! + 1 TO MAX.USR.FILE.SIZE.FRM.DEF
- LSET USER.RECORD.N$ = TEMPLATE$
- PUT 2
- LOCATE 24,X
- PRINT J;
- NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * CONVERT DISPLAYABLE OPTIONS INTO RBBS-PC.DEF PARAMETER VARIABLES *
- ' *****************************************************************************
- '
- 59000 GOSUB 50340
- IF EXPERT.USER$ = "NOVICE" THEN _
- EXPERT.USER = 0
- IF EXPERT.USER$ = "EXPERT" THEN _
- EXPERT.USER = -1
- DOWNLOAD.DRIVES$ = DRIVES.FOR.DOWNLOADS$ + DRIVE.FOR.UPLOADS$
- PROMPT.BELL = -1
- IF PROMPT.BELL$ = "OFF" THEN _
- PROMPT.BELL = 0
- PAGING.PRINTER.SUPPORT$ = ". "
- IF M11$ = "YES" THEN _
- PAGING.PRINTER.SUPPORT$ = ". " + CHR$(7)
- CODE.TYPE = FALSE
- IF CODE.TYPE$ = "COMPILED" THEN _
- CODE.TYPE = TRUE
- GOSUB 15780
- BULLETINS.OPTIONAL = FALSE
- IF BULLETINS.OPTIONAL$ = "YES" THEN _
- BULLETINS.OPTIONAL = TRUE
- MESSAGE.REMINDER = FALSE
- IF MESSAGE.REMINDER$ = "YES" THEN _
- MESSAGE.REMINDER = TRUE
- REQUIRE.NON.ASCII = FALSE
- IF REQUIRE.NON.ASCII$ = "YES" THEN _
- REQUIRE.NON.ASCII = TRUE
- WELCOME.INTERRUPTABLE = FALSE
- IF WELCOME.INTERRUPTABLE$ = "YES" THEN _
- WELCOME.INTERRUPTABLE = TRUE
- REMIND.FILE.TRANSFERS = FALSE
- IF REMIND.FILE.TRANSFERS$ = "YES" THEN _
- REMIND.FILE.TRANSFERS = TRUE
- REMIND.PROFILE = FALSE
- IF REMIND.PROFILE$ = "YES" THEN _
- REMIND.PROFILE = TRUE
- DOORS.AVAILABLE = FALSE
- IF DOORS.AVAILABLE$ = "YES" THEN _
- DOORS.AVAILABLE = TRUE
- LIMIT.DAILY.TIME = FALSE
- IF LIMIT.DAILY.TIME$ = "YES" THEN _
- LIMIT.DAILY.TIME = TRUE
- COMMANDS.BETWEEN.RINGS = FALSE
- IF COMMANDS.BETWEEN.RINGS$ = "YES" THEN _
- COMMANDS.BETWEEN.RINGS = TRUE
- MNP.SUPPORT = FALSE
- IF MNP.SUPPORT$ = "YES" THEN _
- MNP.SUPPORT = TRUE
- WILL.SUBDIRS.B.USED = FALSE
- IF WILL.SUBDIRS.B.USED$ = "YES" THEN _
- WILL.SUBDIRS.B.USED = TRUE
- UPLOAD.TO.SUBDIR = FALSE
- IF UPLOAD.TO.SUBDIR$ = "YES" THEN _
- UPLOAD.TO.SUBDIR = TRUE
- DOWNLOAD.TO.SUBDIR = FALSE
- IF DOWNLOAD.TO.SUBDIR$ = "YES" THEN _
- DOWNLOAD.TO.SUBDIR = TRUE
- RESTRICT.BAUD = FALSE
- IF RESTRICT.BAUD$ = "YES" THEN _
- RESTRICT.BAUD = TRUE
- IF RESTRICT.BAUD$="YES=Registered users" THEN _
- RESTRICT.BAUD=-2
- USE.COLOR = FALSE
- IF USE.COLOR$ = "YES" THEN _
- USE.COLOR = TRUE
- DISKFULL.GO.OFFLINE = FALSE
- IF DISKFULL.GO.OFFLINE$ = "YES" THEN _
- DISKFULL.GO.OFFLINE = TRUE
- EXTENDED.LOGGING = FALSE
- IF EXTENDED.LOGGING$ = "YES" THEN _
- EXTENDED.LOGGING = TRUE
- DUMB.MODEM = FALSE
- IF DUMB.MODEM$ = "YES" THEN _
- DUMB.MODEM = TRUE
- COMMENTS.AS.MESSAGES=FALSE
- IF COMMENTS.AS.MESSAGES$="YES" THEN _
- COMMENTS.AS.MESSAGES=TRUE
- TURBO.RBBS = FNYESNO(TURBO.RBBS$)
- LIMIT.SEARCH.TO.FMS = FNYESNO(LIMIT.SEARCH.TO.FMS$)
- NEW.FILES.CHECK = FNYESNO(NEW.FILES.CHECK$)
- SHOW.SECTION = FNYESNO(SHOW.SECTION$)
- COMMANDS.IN.PROMPT = FNYESNO(COMMANDS.IN.PROMPT$)
- NEWUSER.SETS.DEFAULTS = FNYESNO(NEWUSER.SETS.DEFAULTS$)
- REMEMBER.NEW.USERS = FNYESNO(REMEMBER.NEW.USERS$)
- SURVIVE.NOUSER.ROOM = FNYESNO(SURVIVE.NOUSER.ROOM$)
- TURN.PRINTER.OFF = FNYESNO(TURN.PRINTER.OFF$)
- MUSIC = FNYESNO(MUSIC$)
- RESTRICT.BY.DATE = FNYESNO (RESTRICT.BY.DATE$)
- REDIRECT.IO.METHOD = FNYESNO(REDIRECT.IO.METHOD$)
- GO.TO.SHELL = TRUE
- IF GO.TO.SHELL$ = "EXIT RBBS-PC" THEN _ ' CPC15-1B
- GO.TO.SHELL = FALSE
- IF REQUIRED.QUESTIONNAIRE$ = "NONE" THEN _
- REQUIRED.QUESTIONNAIRE$ = ""
- MLCOM = FNYESNO(MLCOM$)
- SHOOT.YOURSELF = FNYESNO(SHOOT.YOURSELF$)
- IF MAIN.MESSAGE.FILE$ <> MAINMSG$ THEN _
- MAIN.MESSAGE.FILE$ = MAINMSG$
- IF MAIN.USER.FILE$ <> MAINUSR$ THEN _
- MAIN.USER.FILE$ = MAINUSR$
- IF F THEN _
- GOSUB 30040
- 59020 OPEN "O",#1,CONFIG.FILENAME$
- IF INSTR(MO$,":") < 1 THEN _
- MO$ = MO$ + ":
- IF INSTR(SJ$,":") < 1 THEN _
- SJ$ = SJ$ + ":
- IF INSTR(DRIVE.FOR.BULLETINS$,":") < 1 THEN _
- DRIVE.FOR.BULLETINS$ = DRIVE.FOR.BULLETINS$ + ":
- T$ = DIRECTORY.EXTENTION$
- IF INSTR(DIRECTORY.EXTENTION$,".") THEN _
- T$ = MID$(DIRECTORY.EXTENTION$,INSTR(DIRECTORY.EXTENTION$,".") + 1,LEN(DIRECTORY.EXTENTION$))
- S$ = UPLOAD.DIRECTORY$
- IF INSTR(UPLOAD.DIRECTORY$,".") THEN _
- S$ = MID$(UPLOAD.DIRECTORY$,1,INSTR(UPLOAD.DIRECTORY$,".")-1)
- DIRECTORY.EXTENTION$ = T$
- UPLOAD.DIRECTORY$ = S$
- IF DOWNLOAD.TO.SUBDIR$ = "NO" THEN _
- DNLD.SUB = 0 : _
- FOR I = 1 TO 99 : _
- DNLD$(I) = "" : _
- NEXT
- IF UPLOAD.TO.SUBDIR$ = "NO" THEN _
- UPLOAD.SUBDIR$ = DRIVE.FOR.UPLOADS$ + ":"
- IF UPLOAD.TO.SUBDIR$ = "YES" AND UPLOAD.SUBDIR$<>"" THEN _
- DRIVE.FOR.UPLOADS$ = UPLOAD.SUBDIR$
- IF REQUIRED.RINGS = 0 AND _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0")+3,5)<>"1Q0X1" THEN _ ' CPC15-1B
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0")+3,5)="1Q0X1" ' CPC15-1B
- IF REQUIRED.RINGS > 0 AND _
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0")+3,3)="0Q0X1" THEN _ ' CPC15-1B
- MID$(USER.INIT.COMMAND$,INSTR(USER.INIT.COMMAND$,"S0")+3,3)="254 " ' CPC15-1B
- '
- ' *****************************************************************************
- ' * WRITE OUT THE "RBBS-PC.DEF" FILE WITH THE SYSOP'S SPECIFIED CONFIGURATION *
- ' *****************************************************************************
- '
- 59030 WRITE #1,DOWNLOAD.DRIVES$, _
- SYSOP.PASSWORD.1$, _
- SYSOP.PASSWORD.2$, _
- SYSOP.FIRST.NAME$, _
- SYSOP.LAST.NAME$, _
- REQUIRED.RINGS, _
- START.OFFICE.HOURS, _
- END.OFFICE.HOURS, _
- MINUTES.PER.SESSION!, _
- MAX.ALLOWED.MSGS.FRM.DEF, _
- ACT.MNTHS.B4.DELETING, _
- UPLOAD.DIRECTORY$,_
- EXPERT.USER, _
- ACTIVE.BULLETINS, _
- PROMPT.BELL, _
- PCJR, _
- CODE.TYPE, _
- MENU$(1), _
- MENU$(2), _
- MENU$(3), _
- MENU$(4), _
- MENU$(5), _
- CONFERENCE.MENU$, _
- CONFERENCE.VIEWER.SEC.LVL, _
- WELCOME.INTERRUPTABLE, _
- REMIND.FILE.TRANSFERS, _
- PAGE.LENGTH, _
- MAX.MESSAGE.LINES, _
- DOORS.AVAILABLE, _
- MO$
- IF INSTR(BULLETIN.MENU$,":") < 1 THEN _
- BULLETIN.MENU$ = DRIVE.FOR.BULLETINS$ + BULLETIN.MENU$
- IF INSTR(BULLETIN.PREFIX$,":") < 1 THEN _
- BULLETIN.PREFIX$ = DRIVE.FOR.BULLETINS$ + BULLETIN.PREFIX$
- GLOBAL.FUNCTION(3) = MINIMUM.LOGON.SECURITY
- FILES.FUNCTION(2) = MINIMUM.LOGON.SECURITY
- WRITE #1,MAIN.MESSAGE.FILE$, _
- MAIN.MESSAGE.BACKUP$, _
- CALLERS.FILE$, _
- COMMENTS.FILE$, _
- MAIN.USER.FILE$, _
- WELCOME.FILE$, _
- NEWUSER.FILE$, _
- DIRECTORY.EXTENTION$, _
- COM.PORT$, _
- BULLETINS.OPTIONAL, _
- USER.INIT.COMMAND$, _
- RTS$, _ ' CPC15-1B
- DOS.VERSION, _
- FG, _
- BG, _
- BORDER, _
- RBBS.BAT$, _
- RCTTY.BAT$
- WRITE #1,OMIT.MAIN.DIRECTORY$, _
- DUMMY$, _
- HELP$(3), _
- HELP$(4), _
- HELP$(7), _
- HELP$(9), _
- BULLETIN.MENU$, _
- BULLETIN.PREFIX$, _
- DRIVE.FOR.BULLETINS$, _
- MESSAGE.REMINDER, _
- REQUIRE.NON.ASCII, _
- DOORS.SECURITY.LEVEL, _
- MAXIMUM.NUMBER.OF.NODES, _
- NETWORK.TYPE, _
- RECYCLE.TO.DOS, _
- MAX.USR.FILE.SIZE.FRM.DEF, _
- MAX.MSG.FILE.SIZE.FRM.DEF!, _
- TRASHCAN.FILE$
- WRITE #1,MINIMUM.LOGON.SECURITY, _
- DEFAULT.SECURITY.LEVEL, _
- SYSOP.SECURITY.LEVEL, _
- FILESEC.FILE$, _
- SYSOP.MENU.SECURITY.LEVEL, _
- LOCAL.PASSWORD$, _
- MAXIMUM.VIOLATIONS, _
- SYSOP.FUNCTION(1), _
- SYSOP.FUNCTION(2), _
- SYSOP.FUNCTION(3), _
- SYSOP.FUNCTION(4), _
- SYSOP.FUNCTION(5), _
- SYSOP.FUNCTION(6), _
- SYSOP.FUNCTION(7), _
- PASSWORD.FILE$, _
- MAXIMUM.PASSWORD.CHANGES, _
- MINIMUM.SECURITY.FOR.TEMP.PASSWORD, _
- OVERWRITE.SECURITY.LEVEL, _
- DOORS.TERMINAL.TYPE, _
- LIMIT.DAILY.TIME
- WRITE #1,MAIN.FUNCTION(1), _
- MAIN.FUNCTION(2), _
- MAIN.FUNCTION(3), _
- MAIN.FUNCTION(4), _
- MAIN.FUNCTION(5), _
- MAIN.FUNCTION(6), _
- MAIN.FUNCTION(7), _
- MAIN.FUNCTION(8), _
- MAIN.FUNCTION(9), _
- MAIN.FUNCTION(10), _
- MAIN.FUNCTION(11), _
- MAIN.FUNCTION(12), _
- MAIN.FUNCTION(13), _
- MAIN.FUNCTION(14), _
- MAIN.FUNCTION(15), _
- MAIN.FUNCTION(16), _
- MAIN.FUNCTION(17), _
- DUMMY$, _
- WAIT.BEFORE.DISCONNECT
- WRITE #1,FILES.FUNCTION(1), _
- FILES.FUNCTION(2), _
- FILES.FUNCTION(3), _
- FILES.FUNCTION(4), _
- FILES.FUNCTION(5), _
- FILES.FUNCTION(6), _
- FILES.FUNCTION(7), _
- UTILITY.FUNCTION(1), _
- UTILITY.FUNCTION(2), _
- UTILITY.FUNCTION(3), _
- UTILITY.FUNCTION(4), _
- UTILITY.FUNCTION(5), _
- UTILITY.FUNCTION(6), _
- UTILITY.FUNCTION(7), _
- UTILITY.FUNCTION(8), _
- UTILITY.FUNCTION(9), _
- UTILITY.FUNCTION(10), _
- UTILITY.FUNCTION(11), _
- GLOBAL.FUNCTION(1), _
- GLOBAL.FUNCTION(2), _
- GLOBAL.FUNCTION(3), _
- GLOBAL.FUNCTION(4), _
- UPLOAD.TIME.FACTOR!, _
- COMPUTER.TYPE, _
- REMIND.PROFILE, _
- RBBS.NAME$, _
- COMMANDS.BETWEEN.RINGS, _
- MNP.SUPPORT, _
- PAGING.PRINTER.SUPPORT$, _
- MODEM.INIT.BAUD$
- 59035 WRITE #1,TURN.PRINTER.OFF,_
- DIRECTORY.PATH$,_
- MIN.SEC.TO.VIEW, _
- LIMIT.SEARCH.TO.FMS, _
- DEFAULT.CATEGORY.CODE$, _
- DIR.CATEGORY.FILE$, _
- NEW.FILES.CHECK, _
- MAX.DESC.LEN, _
- SHOW.SECTION, _
- COMMANDS.IN.PROMPT, _
- NEWUSER.SETS.DEFAULTS, _
- HELP.PATH$, _
- HELP.EXTENSION$, _
- MAIN.COMMANDS$, _
- FILE.COMMANDS$, _
- UTIL.COMMANDS$, _
- GLOBAL.COMMANDS$, _
- SYSOP.COMMANDS$
- WRITE #1,UPLOAD.PATH$, _
- FMS.DIRECTORY$, _
- ANS.MENU$, _
- REQUIRED.QUESTIONNAIRE$, _
- REMEMBER.NEW.USERS, _
- SURVIVE.NOUSER.ROOM, _
- PROMPT.HASH$, _
- START.HASH, _
- LEN.HASH, _
- PROMPT.INDIV$, _
- START.INDIV, _
- LEN.INDIV
- WRITE #1,BYPASS.MSGS, _
- MUSIC, _
- RESTRICT.BY.DATE, _
- DAYS.TO.WARN, _
- DAYS.IN.SUBSCRIPTION.PERIOD, _
- CALLBACK.VERIFICATION, _
- RESTRICT.VALID.CMDS, _
- NEW.USER.DEFAULT.MODE, _
- NEW.USER.LINE.FEEDS, _
- NEW.USER.NULLS, _
- NEW.USER.BELL, _
- NEW.USER.CASE, _
- NEW.USER.MARGINS, _
- WRAP.CALLERS.FILE$, _
- REDIRECT.IO.METHOD, _
- GO.TO.SHELL, _
- HALT.ON.ERROR, _
- NEW.PUBLIC.MSGS.SECURITY, _
- NEW.PRIVATE.MSGS.SECURITY, _
- SECURITY.NEEEDED.TO.CHANGE.MSGS, _
- SL.CATEGORIZE.UPLOADS, _
- BAUDOT, _
- TIME.TO.DROP.TO.DOS, _
- EXPIRED.SECURITY, _
- DTR.DROP.DELAY, _
- ASK.IDENTITY, _
- USE.EXTERNAL.XMODEM, _
- BUFFER.SIZE, _
- MLCOM, _
- SHOOT.YOURSELF, _
- F7.MESSAGE$, _
- NEW.USER.DEFAULT.PROTOCOL$, _
- NEW.USER.GRAPHICS$, _
- NET.MAIL$, _
- MASTER.DIRECTORY.NAME$, _
- PROTOCOL.PATH$, _
- UPCAT.HELP$, _
- ALWAYS.STREW.TO$, _
- DUMMY1$
- IF COM.PORT$ = "COM1" THEN _
- LSB = &H3F8 : _
- MSB = &H3F9 : _
- LINE.CONTROL.REGISTER = &H3FB : _
- MODEM.CONTROL.REGISTER = &H3FC : _
- LINE.STATUS.REGISTER = &H3FD : _
- MODEM.STATUS.REGISTER = &H3FE
- IF COM.PORT$ = "COM2" OR PCJR = 1 THEN _
- LSB = &H2F8 : _
- MSB = &H2F9 : _
- LINE.CONTROL.REGISTER = &H2FB : _
- MODEM.CONTROL.REGISTER = &H2FC : _
- LINE.STATUS.REGISTER = &H2FD : _
- MODEM.STATUS.REGISTER = &H2FE
- WRITE #1,SEC.LVL.EXEMPT.FRM.PURGING, _
- MODEM.INIT.WAIT.TIME, _
- MODEM.COMMAND.DELAY.TIME, _
- TURBO.RBBS, _
- DNLD.SUB, _
- WILL.SUBDIRS.B.USED, _
- UPLOAD.TO.SUBDIR, _
- DOWNLOAD.TO.SUBDIR, _
- UPLOAD.SUBDIR$, _
- RESTRICT.BAUD, _
- USE.COLOR, _
- DISKFULL.GO.OFFLINE, _
- EXTENDED.LOGGING, _
- USER.RESET.COMMAND$, _
- USER.COUNT.RINGS.COMMAND$, _
- USER.ANSWER.COMMAND$, _
- USER.GO.OFFHOOK.COMMAND$, _
- DISK.FOR.DOS$, _
- DUMB.MODEM, _
- COMMENTS.AS.MESSAGES, _
- LSB, _
- MSB, _
- LINE.CONTROL.REGISTER, _
- MODEM.CONTROL.REGISTER, _
- LINE.STATUS.REGISTER, _
- MODEM.STATUS.REGISTER
- IF DNLD.SUB<1 OR DNLD.SUB>99 THEN _
- GOTO 59080
- FOR I = 1 TO DNLD.SUB
- WRITE #1,DNLD$(I)
- NEXT
- 59080 CLOSE #1
- '
- ' *****************************************************************************
- ' * NOTIFY THE SYSOP THAT THE CONFIGURATION DESCRIPTION FILE HAS BEEN WRITTEN *
- ' *****************************************************************************
- '
- CLS
- LOCATE 12,1,1
- PRINT "RBBS-PC configuration description file, " + CONFIG.FILENAME$ + ", now on default drive."
- GOSUB 60380
- GOTO 60340
- '
- ' *****************************************************************************
- ' * CONFIG.BAS'S ERROR ROUTINES *
- ' *****************************************************************************
- '
- REM
- 60010 REM * HANDLE ERROR CONDITIONS *
- ' PRINT ERR,ERL : STOP
- IF ERR = 53 AND ERL = 30010 THEN _
- RESUME 30030
- IF ERR = 58 AND ERL = 30010 THEN _
- RESUME 30020
- IF ERR = 62 AND _
- (ERL = 11600 OR _
- ERL = 11620 OR _
- ERL = 11640 OR _
- ERL = 11660 OR _
- ERL = 11680 OR _
- ERL = 11700 OR _
- ERL = 11705 OR _
- ERL = 11706) THEN _
- PRINT CONFIG.FILENAME$ + _
- " from a version earlier than CPC15.1 on default drive." : _
- PRINT "Please delete and rerun CONFIG." : _
- RESUME 60340
- IF ERL = 15780 AND ERR = 5 AND _ ' CPC15-1B
- INSTR(USER.INIT.COMMAND$,"S0=") = 0 THEN _ ' CPC15-1B
- RESUME 16073 ' CPC15-1B
- IF ERL = 31000 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 31000
- IF ERL = 31030 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 31030
- IF ERL = 22120 AND ERR = 6 THEN _
- RESUME 22100
- IF ERL = 24750 AND ERR = 58 THEN _
- KILL A$ : _
- RESUME 24750
- IF ERL = 31020 THEN _
- PRINT "Unable to kill ";MAIN.MESSAGE.FILE$;". Error";STR$(ERR):_
- RESUME 31035
- IF (ERL = 50490 OR ERL = 50540) AND ERR = 58 THEN _
- RESUME 50500
- IF ERL = 50490 OR ERL = 50540 THEN _
- RESUME 15230
- IF ERR = 61 THEN _
- PRINT "ERROR - IBM DOS DISKETTE FULL " : _
- RESUME 60340
- IF ERR = 67 THEN _
- PRINT "ERROR - IBM DOS DIRECTORY FULL" : _
- RESUME 60340
- IF ERR = 70 THEN _
- PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED" : _
- RESUME 60340
- IF ERR = 71 THEN _
- PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE" : _
- RESUME 60340
- IF ERR = 72 THEN _
- PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE" : _
- RESUME 60340
- PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
- 60340 IF F = 1 THEN _
- DELAY! = FNTI! + 5
- GOSUB 60440
- 60360 SYSTEM
- '
- ' *****************************************************************************
- ' * COMMON SUBROUTINE TO BEEP AT THE SYSOP *
- ' *****************************************************************************
- '
- 60380 FOR I = 1 TO 3
- SOUND 1000*I,1
- NEXT
- RETURN
- '
- ' *****************************************************************************
- ' * COMMON ROUTINE TO WAIT A SPECIFIED NUMBER OF SECONDS *
- ' *****************************************************************************
- '
- 60440 ' wait routine
- 60450 IF FNTI! < DELAY! THEN _
- GOTO 60450 ELSE _
- RETURN